python - 代码强制“Q-71A Way Too Long Words”不提交。- 令牌预期 Python3
问题描述
我刚刚开始使用 Code Forces 来提高我的问题解决能力,并注意到虽然我的输出是正确的,但我还是能够通过 Way Too Long Words 问题(?)这是问题的链接: https ://codeforces.com/contest /71/问题/A
还有一个问题是(对于那些不想去网站的人):
有时像“本地化”或“国际化”这样的词太长了,以至于在一篇文章中多次写它们是很累的。
让我们考虑一个词太长,如果它的长度严格超过 10 个字符。所有太长的词都应该用特殊的缩写代替。
这个缩写是这样写的:我们写下一个单词的第一个和最后一个字母,在它们之间我们写下第一个和最后一个字母之间的字母数。该数字采用十进制系统,不包含任何前导零。
因此,“localization”将拼写为“l10n”,“internationalization» 将拼写为“i18n”。
建议您使用缩写词自动更改单词的过程。在那个地方所有太长的词都应该用缩写代替,不太长的词不应该经过任何chan
我的代码是:
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
如您所见,当输入为整数时,它要求我不输出任何内容,而我相信我失败了。有什么理由吗?
解决方案
列表顶部的数字是单词的数量。您想将其用作输入,这样您就可以创建一个您可能会缩短的单词数组。某些语言需要在创建之前初始化数组大小。下面是一个有效的解决方案。它将第一个输入作为整数,如果它大于 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(_)`
推荐阅读
- laravel - 错误:调用未定义的方法 phpDocumentor\Reflection\Project::where()
- reactjs - 按字母顺序对表格进行排序
- git - jenkins:获取远程仓库'origin'时出错:无法解析代理
- javascript - 选择 API 和范围 API 有什么区别?
- mysql - 需要通过状态获取数据,但是数据是冗余的
- dart - showSearch 方法的 buildSuggestions 是否连续运行?
- c# - 我有一个远程发布的网站程序,我想在本地调试。我应该这样做
- java - 正则表达式也匹配负十进制数
- c# - 如何创建要从 XML 反序列化的类
- python - 安装出现故障时如何安装 scikit-image