我在许多解决方案中都有这个错误。我在这个主题上经历了很多答案,但无法解决问题。我只能弄清楚问题可能是从单个输入文件中获取输入,其中输入整个输入字符串在一个输入调用中,并在第二个原始输入调用上显示EOF错误。
def change(a,b,l):
alist = []
blist = []
for m in range(0,26):
alist.append(0)
blist.append(0)
for i in a:
alist[l[i]] += 1
for j in b:
blist[l[j]] += 1
common = 0
for i in range(0,26):
dif = (alist[i] - blist[i])
if (dif != alist[i]):
common += min(alist[i],blist[i])
total = (min(len(a),len(b)) - common) + abs(len(a) - len(b))
return total
test = int(raw_input())
ans = []
l = {}
for i in range(65,91):
l[chr(i)] = i - 65
for i in range(0,test):
a = str(raw_input())
b = str(raw_input())
ans = ans + [change(a,b,l)]
for j in ans:
print j
如果有人能够描述如何从单个输入文件中多次提取输入,那将是一个很大的帮助。
答案 0 :(得分:0)
特别是如果您想要从文件而不是终端输入,您可以使用文件对象的readline()
功能。例如:
import sys
def test(f):
num = int(f.readline())
for i in range(num):
a = int(f.readline())
b = int(f.readline())
print a, b
if __name__ == '__main__':
test(sys.stdin)
您可能还希望实际使用文件末尾作为输入结束的标记。在您的示例中,您可能不会要求获取第一行中的记录数,但只是继续直到您点击EOF。