2020.11.24每日複習

weixin_44460781發表於2020-11-25

1556.千位分隔符

在這裡插入圖片描述
分析

  • 從後往前進行拆分和拼接,最後再翻轉輸出
class Solution {
    public String thousandSeparator(int n) {
		if(n / 1000 == 0) return String.valueOf(n); //如果n小於1000,則不用加分隔符直接輸出
        StringBuilder sb = new StringBuilder();
        int count = 0; //計算當前有幾位數了
        while(n > 0) {
            if(count == 3) { //如果已經三位了,則需加分隔符,並將次數置0
                sb.append(".");
                count = 0;
            }
            int temp = n % 10;
            count++;
            sb.append(temp);
            n = n / 10;
        }
        return sb.reverse().toString();
    }
}

1576.替換所有的問號

在這裡插入圖片描述
分析

  • 逐個比較法
class Solution {
    public String modifyString(String s) {
		char[] ch = s.toCharArray();
        for(int i = 0; i < ch.length; i++) {
            if(ch[i] == '?') { //如果當前字元為 ?
                char left = (i == 0 ? ' ' : ch[i - 1]); //找左邊元素,並判斷是不是第一個元素
                char right = (i == ch.length - 1 ? ' ' : ch[i + 1]); //找右邊元素,並判斷是不是最後一個元素
                char temp = 'a';
                while(temp == left || temp == right) //迴圈找到跟左右字元都不相同的字元
                	temp++;
                ch[i] = temp;
            }
        }
        return new String(ch);
    }
}