我刚刚开始使用代码部队来提高我的问题解决技巧,并注意到能够通过太长的话的问题,虽然我的输出是正确的(?)这里是问题的链接: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
如你所见,当输入是整数时,我不能输出任何东西,我认为我失败了,为什么呢?
2条答案
按热度按时间wfsdck301#
列表顶部的数字是单词数。您希望将其用作输入,以便创建可能要缩短的单词数组。有些语言需要在创建之前初始化数组大小。下面是一个有效的解决方案。它将第一个输入作为整数,如果大于100,则停止(就像在指令中他们说n不应该大于100)然后它循环通过其余的输入,将它们添加到一个数组中,最后缩短需要缩短的单词。顺便说一句,你的逻辑是合理的,代码确实工作,但是在必须重新启动之前它只能对单个输入起作用。
wn9m85ua2#
JAVA最简单的问题解决方案-