CodeSprout程式萌芽
中等第 29 題 · 展場標籤整理
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Java

官方解答|展場標籤整理

官方解答|展場標籤整理

解題思路

先 trim,再以一個以上半形空格切成單字。只選取奇數長度,逐字轉為大寫,接著依原序排列,最後用 | 連接。篩選在轉換之前進行。

正確性與邊界

空白輸入先辨識為空清單,避免 split 產生假的空單字;沒有符合單字時 String.join 回傳空字串。大小寫以 Locale.ROOT 處理,避免伺服器語系影響結果。

複雜度

設 L 為文字長度、k 為單字數。時間 O(L),額外空間 O(L)。

公開範例

輸入 {"text": "a"},依上述步驟得到 "A"。

下方程式可直接取代起始碼;使用 Java 11,入口為 Solution.solve。

CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式

import java.util.*;

public class Solution {

    public static String solve(String text) {
        String clean = text.trim();
        List<String> result = new ArrayList<>();
        if (!clean.isEmpty()) {
            for (String word : clean.split(" +")) {
                if (word.length() % 2 != 0) result.add(word.toUpperCase(Locale.ROOT));
            }
        }
        
        return String.join("|", result);
    }
}

留言討論 0