亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

代碼強制“Q-71A Way Too Long Words”不提交。- 令牌預期為Python3

代碼強制“Q-71A Way Too Long Words”不提交。- 令牌預期為Python3

慕沐林林 2023-12-09 16:04:25
我剛剛開始使用 Code Forces 來提高我解決問題的能力,并注意到盡管我的輸出是正確的,但我還是能夠通過&ldquo;太長的單詞&rdquo;問題(?)有時,像&ldquo;本地化&rdquo;或&ldquo;國際化&rdquo;這樣的詞太長,以至于在一篇文章中多次寫它們是很煩人的。如果單詞的長度嚴格超過 10 個字符,我們就認為它太長了。所有太長的單詞都應該用特殊的縮寫來代替。這個縮寫是這樣寫的:我們寫下單詞的第一個和最后一個字母,并在它們之間寫下第一個和最后一個字母之間的字母數。該數字采用十進制,并且不包含任何前導零。因此,&ldquo;本地化&rdquo;將被拼寫為&ldquo;l10n&rdquo;,&ldquo;國際化&rdquo;將被拼寫為&ldquo;i18n&rdquo;。建議您自動化更改縮寫詞的過程。因此,所有太長的單詞都應該用縮寫來代替,而不太長的單詞則不應進行任何修改。我的代碼是: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:4wordlocalizationinternationalizationpneumonoultramicroscopicsilicovolcanoconiosisExample output:wordl10ni18np43s正如您所看到的,當輸入是整數時,它要求我不輸出任何內容,而我認為我失敗了。有什么理由嗎?
查看完整描述

3 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

列表頂部的數字是單詞數。您希望將其用作輸入,以便創建可能要縮短的單詞數組。某些語言需要在創建之前初始化數組大小。下面是一個有效的解決方案。它將第一個輸入作為整數,如果它大于 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(_)`


查看完整回答
反對 回復 2023-12-09
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

盡管該挑戰并未規定輸入的行數或字符長度必須介于 1 到 100 之間,因此無需編寫任何代碼來檢查這些值。它只是指出 n 將在 1 到 100 之間,測試單詞的字符長度也是如此。下面是代碼,希望能更容易理解!


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


查看完整回答
反對 回復 2023-12-09
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

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));

}


查看完整回答
反對 回復 2023-12-09
  • 3 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號