代码强制“Q-71 A方式太长的单词”不提交,-需要标记Python3

nfg76nw0  于 2023-02-20  发布在  Python
关注(0)|答案(2)|浏览(90)

我刚刚开始使用代码部队来提高我的问题解决技巧,并注意到能够通过太长的话的问题,虽然我的输出是正确的(?)这里是问题的链接:https://codeforces.com/contest/71/problem/A
还有一个问题是(对于那些谁不想去该网站):

有时候,“本地化”或“国际化”这样的词太长,以至于在一个文本中多次书写它们是相当烦人的。
如果单词长度严格超过10个字符,我们就认为它太长。所有太长的单词都应替换为特殊的缩写。
**缩写如下:我们写下一个单词的首字母和末字母,在它们之间我们写出首字母和末字母之间的字母数。这个数字是十进制的,不包含任何前导零。
因此,“本地化”将拼写为“l10n”,“国际化”将拼写为“i18n”。
建议您将更改带有缩写的单词的过程自动化。这样,所有过长的单词都应替换为缩写,而不太长的单词不应进行任何更改

我的密码是:

word = input()
while not word.isnumeric():
    if len(word) > 10:
        between = (len(word)-2)
        first, last = (word[0], word[-1])
        print(f"{first}{between}{last}")
        break
    elif len(word) <= 10:
        print(word)
        break

该网站还想给出一些例子:

Example input:
4
word
localization
internationalization
pneumonoultramicroscopicsilicovolcanoconiosis

Example output:
word
l10n
i18n
p43s

如你所见,当输入是整数时,我不能输出任何东西,我认为我失败了,为什么呢?

wfsdck30

wfsdck301#

列表顶部的数字是单词数。您希望将其用作输入,以便创建可能要缩短的单词数组。有些语言需要在创建之前初始化数组大小。下面是一个有效的解决方案。它将第一个输入作为整数,如果大于100,则停止(就像在指令中他们说n不应该大于100)然后它循环通过其余的输入,将它们添加到一个数组中,最后缩短需要缩短的单词。顺便说一句,你的逻辑是合理的,代码确实工作,但是在必须重新启动之前它只能对单个输入起作用。

while True:
    n = int(input())
    if n in range(1,101):
        break
word_list = []
for i in range(n):
    while True:
        word = input()
        if len(word) in range(1,101):
            break
    word_list.append(word.lower())

for _ in word_list:
    if len(_) > 10:
        print(_[0] + str(len(_[1:-1])) + _[-1])
    else:
        print(_)`
wn9m85ua

wn9m85ua2#

JAVA最简单的问题解决方案-

public static void printAbbv(String s){
    if (s.length() <= 10) {
        System.out.print(s);
        return;
    }

    System.out.print(s.charAt(0));

    int count = 0;
    for (int i = 1; i < s.length() - 1; i++) {
        count++;
    }
    
    System.out.print(count + "" + s.charAt(s.length() - 1));
}

相关问题