![](/img/trans.png)
[英]How do I write to a python file from a multi-line input received in a gui?
[英]How do I take multi-line input from Codeforces?
Codefores 需要大量的多行输入。 例如:
https://codeforces.com/contest/71/problem/A
TLDR:阅读并减少所有单词的长度:
4
word
localization
internationalization
pneumonoultramicroscopicsilicovolcanoconiosis
我使用了这个解决方案,我认为它是正确的并且对我有用:
lines = []
while True:
line = input()
if line:
lines.append(line)
else:
break
input = '\n'.join(lines)
tab=input.splitlines()
numb=tab[0]
tab.pop(0)
for i in tab:
wordTab=[]
if len(i)>10:
wordTab.append(i[:1])
wordTab.append(i[-1:])
print(f"{i[:1]}{len(i)-2}{i[-1:]}")
else:
print(i)
然而我得到了一个错误(在他们这边)。 如何让 Codeforces 接受 Python 中的多行输入?
我有一个设置,其中有两个名为“input.txt”和“output.txt”的文件。 那是我在本地编写代码的地方,然后我有一个 FILE 参数,当我必须提交给 Codeforces 时,我将其设为 True 和 False。 这是您提到的相同问题的示例。 它运行良好,运行时间为 77 毫秒。
import sys
from os import path
FILE = False # if needed change it while submitting
if FILE:
sys.stdin = open('input.txt', 'r')
sys.stdout = open('output.txt', 'w')
def get_int():
return int(sys.stdin.readline())
def get_string():
return sys.stdin.readline().strip()
n = get_int()
final_result = []
for i in range(n):
word = get_string()
if len(word) > 10:
word = word[0] + str(len(word) - 2) + word[-1]
final_result.append(word)
for item in final_result:
sys.stdout.write(item)
sys.stdout.write('\n')
这是我的答案
n = int(input())
arr = []
for i in range(n) :
word = input()
if len(word) > 10 :
arr.append(word[0] + str(len(word) - 2) + word[len(word)-1])
else :
arr.append(word)
print("\n".join(arr))
lines = '''4 word localization internationalization pneumonoultramicroscopicsilicovolcanoconiosis''' input = '\n'.join(lines) tab=lines.splitlines() for i in tab: wordTab=[] if len(i)>10: start= i[:1] middle = len(i)-2 end= i[-1:] print(f"{start}{len(i)-2}{end}") else: print(i)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.