Python :: Aufgabe #336

2 Lösungen Lösungen öffentlich

Anzahl möglicher Ballons (balloons)

Anfänger - Python von JKooP - 02.04.2021 um 19:06 Uhr
In einem String kommen unsortiert Zeichen vor, mit denen man das Wort „balloon“ bilden soll.
Erstelle eine Methode/Funktion, die als Ergebnis die Anzahl der möglichen Wortbildungen ausgibt,
wobei jeder Buchstabe (Zeichen) nur einmal verwendet werden darf.

Beispiel 1:
s = "nlaebolko"
Lösung: 1

Beispiel 2:
s = "loonbalxballpoon"
Lösung: 2

Beispiel 3:
s = „balbalonn“
Lösung: 0

Viel Spaß

Lösungen:

vote_ok
von AlexGroeg (2010 Punkte) - 07.04.2021 um 09:39 Uhr
Quellcode ausblenden Python-Code

def wort_anzahl(s,wort):
    global n
    wort = list(wort)
    s = list(s)
    a = len(wort)
    b = 0
    for i in wort:
        if i in s:
            s.pop(s.index(i))
            b += 1
        if b == a:
            n += 1
            wort_anzahl(s,wort)    
    return n            


wort = 'balloon'
beispiele = ['nlaebolko', 'loonbalxballpoon', 'balbalonn']

for s in beispiele:
    n = 0
    print('s =', s)
    print('Lösung:' ,wort_anzahl(s,wort), '\n')

vote_ok
von eisheiliger (3750 Punkte) - 07.04.2021 um 16:31 Uhr
Quellcode ausblenden Python-Code

"""
#336: Anzahl möglicher Ballons (balloons)
In einem String kommen unsortiert Zeichen vor, mit denen man das Wort „balloon“ bilden soll.
Erstelle eine Methode/Funktion, die als Ergebnis die Anzahl der möglichen Wortbildungen ausgibt,
wobei jeder Buchstabe (Zeichen) nur einmal verwendet werden darf.
"""


def prf_balloon(arr1):
    arr2 = "balloon"
    arr1_c = []
    arr2_c = []
    erg = len(arr1)

    for i in arr2:
        arr1_c.append(arr1.count(i))
    for i in arr2:
        arr2_c.append(arr2.count(i))
    for i in range(0, len(arr1_c)):
        erg = min(arr1_c[i] / arr2_c[i], erg)

    if erg < 1:
        print("Ergebnis für", arr1,  "=", 0)
    else:
        print("Ergebnis für", arr1,  "=", int(erg))


def main():
    prf_balloon("nlaebolko")
    prf_balloon("loonbalxballpoon")
    prf_balloon("balbalonn")
    prf_balloon("balloonballoonballoonballoonballoonballoonballoonballoonballoonballoonballoon")


if __name__ == '__main__':
    main()


2108705

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.