簡體   English   中英

如何從 Codeforces 獲取多行輸入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM