Форум » Обработка символьных строк » тема 24 номер 135 » Ответить

тема 24 номер 135

elpov06: 135) (Е. Джобс) Текстовый файл 24-J4.txt состоит не более чем из 106 символов J, O, B, S. Сколько раз встречаются комбинации «BOSS» при этом до и после этого слова нет символа «J». Например, комбинации «JBOSS», «BOSSJ» и «JBOSSJ» не должны учитываться. Здравствуйте подскажите пожалуйста в чем мое непонимание задания? Если применить к этой строке получается, 4 и если посчитать количество, тоже 4 s="BOSSBOSSBOSSSSJBOSSJSSBOSSBOSSJJBOSSJJBOSSJ" [pre] s="BOSSBOSSBOSSSSJBOSSJSSBOSSBOSSJJBOSSJJBOSSJ" s1=s s=s.replace("BOSS","1") print(s) print(s.count("1"),"BOSS") "+++++++++" print(s1) s1=s1.replace("JBOSSJ","2") print(s1,"JBOSSJ") print(s1.count("2"),"+++") s1=s1.replace("BOSSJ","3") print(s1) print(s1.count("3")) s1=s1.replace("JBOSS","4") print(s1) print(s1.count("4"))[/pre] Далее я вычитаю 8-3-1-0=4 А в решении [pre2]s="BOSSBOSSBOSSSSJBOSSJSSBOSSBOSSJJBOSSJJBOSSJ" sub = 'BOSS' pos = s.find(sub) k = 0 while pos != -1: if s[pos-1] != 'J' or s[pos+4] != 'J': if s[pos-1] != 'J' and s[pos+4] != 'J': k += 1 print(s,s[pos-1],s[pos+4]) pos = s.find(sub, pos + 1) print(k)[/pre2] к моей строке ответ 3, ответ к файлу тоже не сходится, хотелось бы понять ошибку Поясните пожалуйста[/pre2]

Ответов - 2 новых

s11kai: elpov06 пишет: 135) (Е. Джобс) Текстовый файл 24-J4.txt состоит не более чем из 106 символов J, O, B, S. Сколько раз встречаются комбинации «BOSS» при этом до и после этого слова нет символа «J». Например, комбинации «JBOSS», «BOSSJ» и «JBOSSJ» не должны учитываться. Поясните пожалуйста with open('24-j4.txt') as f: s = f.read().strip() print(s.count('BOSS') - s.count('JBOSS') - s.count('BOSSJ') + s.count('JBOSSJ')) # 2198

s11kai: elpov06 пишет: s="BOSS BOSS BOSS SSJBOSSJSS BOSS BOSSJJBOSSJJBOSSJ" [pre2] sub = 'BOSS' pos = s.find(sub) k = 0 while pos != -1: if s[pos-1] != 'J' or s[pos+4] != 'J': if s[pos-1] != 'J' and s[pos+4] != 'J': k += 1 print(s,s[pos-1],s[pos+4]) pos = s.find(sub, pos + 1) print(k)[/pre2] к моей строке ответ 3 s="BOSSBOSSBOSSSSJBOSSJSSBOSSBOSSJJBOSSJJBOSSJ" print(s.count('BOSS') - s.count('JBOSS') - s.count('BOSSJ') + s.count('JBOSSJ')) # для указанной строки правильным будет ответ - 4



полная версия страницы