如何从Codeforces获取多行输入?

2024-07-04 16:53:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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中的多行输入


Tags: httpscominputleniflinetabelse
2条回答
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)

我有一个设置,其中有两个名为“input.txt”和“output.txt”的文件。这就是我在本地编写代码的地方,然后我有一个文件params,当我必须提交给Codeforces时,我将其设置为True和False。这是你提到的同一个问题的一个例子。运行时间为77ms,工作正常

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')

相关问题 更多 >

    热门问题