Ellenőrizze anagrammák
Ebben az időben, akkor a probléma tanulmányozására „ellenőrzése anagramma» ( «Ellenőrizze Anagrams»).
Már írtam erről a probléma előtt. de most elmondom egy kicsit másképp.
Anagramma - egy játék a szavakkal, ennek eredményeként a permutációja betűk szavak vagy kifejezések még egy szót vagy kifejezést. Két szó van anagramma, ha tudnánk egy másik helyen átrendezése leveleket. Adott két szavak és kifejezések, és a feladat -, hogy ellenőrizze, hogy azok anagramma.
Meggyőződésünk, hogy a betűk
Szóval, mi kell összehasonlítani a két kifejezés. Először is meg kell őket, hogy „kezelni”: csak egyes betűk és átalakítani őket, hogy a kisbetűs. Továbbá, ezen a ponton, tudjuk konvertálni egy string tömbbe. Zárható ezt az eljárást külön funkció.
Vagy, ha memóriafelszabadításra és inkább generátorok:
Vagy mint a funkcionális programozási stílus:
Ezután meg kell számolni minden betű a szövegben, és ha a mennyiségi jellemzői a beolvasott szavak / kifejezések felelnek meg, ezek anagramma. Tegyük fel, hogy csak angol betűket. Akkor tudjuk használni egy sor 26 elem a számlákat.
Őszintén szólva, úgy néz ki, mint a kód C nyelven írt, de nem a Python. Ezen kívül, mi kapcsolódik mereven az angol ábécé. Nézzük cserélje ki a listából, hogy egy szótár (szótár).
Jobb, de egy jól ismert Python mottója mondja - „elem szerepel.” És Counter osztály lehetővé teszi, hogy csak számolni a betűket a szövegben.
Azt hiszem, akkor nézd meg magad, hogy mi külön funkció count_letters már nem annyira szükséges, és a végső döntést felírható:
Mi rendezni mindent
Amikor úgy döntöttem, először ez a probléma, nem használja a számláló. Ehelyett azt kell átalakítani a szöveget egy univerzális formában változatai. Természetesen beszélek, rendezett módon. Ha rendezni a sorokat, és hasonlítsa össze őket, ez lényegében ugyanaz, mint a gróf a tömb elemeit. És, mint a mi problémás szöveget tartalmaz, csak betűket és szóközöket, akkor a trükk:
Mint látható, van egy mozdulattal képes átalakítani ezt a funkciót be egysoros (szórakoztató):
Itt egy történet anagramma.
CheckiO Köszönjük az érdekes feladat.