Daily LeetCode – day0013 1417. Reformat The String

// 1417. Reformat The String
class Solution {
    public String reformat(String s) {
        int letterQuantity = 0;
        for (char c : s.toCharArray()) {
            letterQuantity += c / 97;
        }
        boolean fillDigit;
        if (letterQuantity * 2 + 1 == s.length()) {
            fillDigit = true;
        } else if (letterQuantity * 2 - 1 == s.length()) {
            fillDigit = false;
        } else if (letterQuantity * 2 == s.length()) {
            fillDigit = true;
        } else {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        int indexDigit = 0;
        int indexLetter = 0;
        while (sb.length() < s.length()) {
            if (fillDigit) {
                while (s.charAt(indexDigit) > 96) {
                    ++indexDigit;
                }
                sb.append(s.charAt(indexDigit));
                ++indexDigit;
            } else {
                while (s.charAt(indexLetter) < 59) {
                    ++indexLetter;
                }
                sb.append(s.charAt(indexLetter));
                ++indexLetter;
            }
            fillDigit = !fillDigit;
        }
        return sb.toString();
    }
}
学习笔记:
这是一道字符串的简单题。
ascii码的数字分别代表什么如果可以掌握得好,写起判断来就可以简单直接且快速,不需要用其它奇怪的接口。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注