Új hozzászólás Aktív témák

  • moseras

    tag

    válasz kezdosql #2285 üzenetére

    Üdv,

    Valami ilyenre gondoltál ?

    import string
    import random

    def randString(size):
    letters = 'ABCDEFGHIJKLMNOPQRSTUVWX'
    rstring = ''
    for c in letters:
    if random.random() > 0.5: # random bool
    rstring += c
    if len(rstring) >= size:
    break
    return rstring

    # eredeti
    a = [randString(random.randint(1,22)) for _ in range(30)]
    print(a)
    print()

    # hossz szerint rendezett
    b = sorted(a, key=len, reverse=True)
    print(b)
    print()

    # részhalmazok keresése a b[0]-ra
    h0 = set(b[0])
    rr = [b[0]]
    for s in b[1:]:
    htemp = set(s)
    if htemp <= h0: # htemp.issubset(h0) ?
    rr.append(s)

    print(rr)

    Egy lehetséges eredmény:

    ['ABCDGHIKORST', 'ABDFGHIMNOPRS', 'ABEHLN', 'ABCDEFGHKMOPSTU', 'ABCEHK', 'ABCD', 'ACFJMRTV', 'ABCF', 'DE', 'BFJKLM', 'ABCEIKMQRSTUV', 'AGLMPS', 'BCDEHI', 'BEFGQRU', 'BCFHIJLMOSWX', 'ABCJM', 'DIJLRSTW', 'ABCDEGIJLTU', 'DIJKLMNQTVWX', 'AEGHJKLMRT', 'BCDE', 'ABEGIKMNOQTW', 'DEGHLNOTUVX', 'A', 'ABEL', 'ABCEHJOPS', 'BCEIJKMNOPQR', 'GKLMNOPRSUW', 'ABCD', 'ABCDFHLOSVX']

    ['ABCDEFGHKMOPSTU', 'ABDFGHIMNOPRS', 'ABCEIKMQRSTUV', 'ABCDGHIKORST', 'BCFHIJLMOSWX', 'DIJKLMNQTVWX', 'ABEGIKMNOQTW', 'BCEIJKMNOPQR', 'ABCDEGIJLTU', 'DEGHLNOTUVX', 'GKLMNOPRSUW', 'ABCDFHLOSVX', 'AEGHJKLMRT', 'ABCEHJOPS', 'ACFJMRTV', 'DIJLRSTW', 'BEFGQRU', 'ABEHLN', 'ABCEHK', 'BFJKLM', 'AGLMPS', 'BCDEHI', 'ABCJM', 'ABCD', 'ABCF', 'BCDE', 'ABEL', 'ABCD', 'DE', 'A']

    ['ABCDEFGHKMOPSTU', 'ABCEHK', 'ABCD', 'ABCF', 'BCDE', 'ABCD', 'DE', 'A']

Új hozzászólás Aktív témák