题目的主要信息:

  • 将一个由英文字母组成的字符串转换成从末尾开始每三个字母用逗号分隔的形式

具体做法:

因为String类型字符串不可变,我们用这个字符串创建一个新的StringBuilder型的字符串,然后从字符串末尾第3位开始,每次三位三位地遍历,将逗号用insert函数插入其中。最后将StringBuilder型转变成String输出即可。

alt

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        StringBuilder newstr = new StringBuilder(str); //用原字符串创建可改变的字符串 
        for(int i = str.length() - 3; i >= 0; i -= 3){ //从末尾开始,三个三个遍历
           newstr.insert(i, ','); //插入逗号
        }
        System.out.println(newstr.toString()); //转变成String类输出
    }
}

复杂度分析:

  • 时间复杂度:O(n)O(n),其中nn为字符串长度,遍历n/3n/3
  • 空间复杂度:O(n)O(n),创建了一个临时StringBuilder型的字符串,长度为O(n)O(n)级别