Kérhetnék egy kis segitseget a következő python programhoz?
a bemenetena következőt adjuk meg:
3
zzeenniitt
zqeqnqiqtqzqeqnqiqt
zenitzenitzenitzenitzenitzenit
a kimeneten a következőnek kéne kijönnie:
1 zenit
2 zenit
6 zenit
print('1 zenit')
print('2 zenit')
print('6 zenit')
Megfogalmazom a kérdező helyett a feladatot! (Mondjuk a programozás első lépése, hogy legalább a feladatot meg tudjuk fogalmazni, de mindegy..)
A bemeneti karaktersorban, tetszőleges számú karaktert elhagyva (de sorrendet meghagyva) legfeljebb hányszor szerepel a zenit szó.
@2: nagyon jo! :D Ha te nem irtad volna, akkor biztos, hogy en jottem volna elo ezzel a megoldassal. Igy viszont, itt van ez:
echo -e "3\nzzeenniitt\nzqeqnqiqtqzqeqnqiqt\nzenitzenitzenitzenitzenitzenit" | perl -lane 'BEGIN{ $target = "zenit"; @target = split("", $target)}{ $i = 0; $count = 0; foreach $letter ( split("", $_) ){ if ($target[$i] eq $letter ){ $i ++; if ($i == scalar(@target)){ $i = 0; $count ++ } } } print "$count $target" if $count != 0}'
output:
1 zenit
2 zenit
6 zenit
A sortoreseket es behuzast, mivel a gyk amugy is szetcseszi, kivettem az olvashatosag novelese miatt.
"#4, és ennek mi köze a Pythonhoz a P betűn kívül?"
Aki nem teljesen dilettans, az megerti az algoritmust.
A lényegi részt (a rövidebb - jelen esetben a "zenit" - szó előfordulásának számlálását) végző függvényre példa:
kétsoros:
while 1:
....print({"zzeenniitt": "1 zenit", "zqeqnqiqtqzqeqnqiqt": "2 zenit", "zenitzenitzenitzenitzenitzenit": "6 zenit"}.get(input(), "")
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!