3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
列表頂部的數(shù)字是單詞數(shù)。您希望將其用作輸入,以便創(chuàng)建可能要縮短的單詞數(shù)組。某些語(yǔ)言需要在創(chuàng)建之前初始化數(shù)組大小。下面是一個(gè)有效的解決方案。它將第一個(gè)輸入作為整數(shù),如果它大于 100,它將停止(正如在說(shuō)明中他們說(shuō) n 不應(yīng)大于 100),然后循環(huán)遍歷其余輸入,將它們添加到數(shù)組中,然后結(jié)束縮短需要縮短的單詞。順便說(shuō)一句,你的邏輯是合理的,該代碼確實(shí)有效,但在必須重新啟動(dòng)之前它只適用于單個(gè)輸入。
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(_)`

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
盡管該挑戰(zhàn)并未規(guī)定輸入的行數(shù)或字符長(zhǎng)度必須介于 1 到 100 之間,因此無(wú)需編寫(xiě)任何代碼來(lái)檢查這些值。它只是指出 n 將在 1 到 100 之間,測(cè)試單詞的字符長(zhǎng)度也是如此。下面是代碼,希望能更容易理解!
def abbreviate(word):
if len(word) > 10:
abbr_num = str(len(word) - 2)
abbr = word[0] + abbr_num + word[-1]
print(abbr)
else:
print(word)
# n is the number of times that the function will be called
n = int(input())
i = 1
while i <= n:
word = input()
abbreviate(word)
i += 1

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
JAVA問(wèn)題最簡(jiǎn)單的解決方案——
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));
}
添加回答
舉報(bào)