我目前正在使用Python进行一些考试,并且有一个问题。
例如,我们有1000行包含某些单词。在每一行中,有2个单词,由空格键(ASCII代码32)分隔。而且我必须用Python编写代码来检查第一个单词是否存在于第二个单词(在同一行中),例如,adc
存在于addadc
中,但不存在于addadfc
中,我需要计算所有好的行。结果为235
,但是它太高了,因为正确答案是234
。我不知道为什么会这样。
代码:
liczba_wierszy = 0 #amount of lines
for i in range(1000):
linia = input() # line
index_spacji = 0 # space index
index_konca = 0 #index of the word
pierwszy_napis = "" # first word
drugi_napis = "" # second word
for j in linia:
if ord(j)!= 32:
index_spacji+=1
else:
break;
pierwszy_napis =(linia[0:index_spacji-1])
drugi_napis = (linia[index_spacji+1:len(linia)])
if pierwszy_napis in drugi_napis:
liczba_wierszy+=1
print(liczba_wierszy)
它是用波兰语写的,所以我要翻译一下。
答案 0 :(得分:1)
我能给你一个简单的选择吗?
count = 0
for i in range(1000):
line = input().strip()
word1,word2 = line.split(' ')
if word1 in word2:
count += 1
print(count)
我还看到您已经将word1
和word2
的字符串初始化为""
,并在之后将值重新分配给它们。您可能要注意,Python字符串是不可变的,以后再为其重新分配将始终创建一个新对象。因此,如果要使用代码,请跳过初始化部分。
答案 1 :(得分:0)
错误似乎在这一行:
pierwszy_napis =(linia[0:index_spacji-1])
它在pierwszy_napis
中的字符数少于应有的字符数。因为MyString [a:b]为您提供了从索引a到索引b-1的子字符串。
尝试
pierwszy_napis =(linia[0:index_spacji])
代替