CodeSprout程式萌芽
簡單第 308 題 · 文字輸入檢查
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Java

官方解答|文字輸入檢查

官方解答|文字輸入檢查

解題思路

將 text.trim() 傳給 Integer.parseInt,使用 12 進位。解析成功後回傳 Integer.signum(解析值):負數−1、零0、正數1;只在 NumberFormatException 分支回傳 fallback。

正確性與邊界

parseInt 自行檢查 ASCII 正負號、每位字元及 int 溢出;未要求 trim 時保留空格使解析失敗。字串長度取實際傳入解析器的字串,文字報表不用 fallback。

複雜度

設 L 為字串長度。時間 O(L),trim 可能需要 O(L) 空間,未 trim 時額外空間 O(1)。

公開範例

輸入 {"text": "12", "fallback": -97},依上述步驟得到 1。

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

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

import java.util.*;

public class Solution {

    public static int solve(String text, int fallback) {
        try {
            int value = Integer.parseInt(text.trim(),12);
            return Integer.signum(value);
        } catch (NumberFormatException error) {
            return fallback;
        }
    }
}

留言討論 0