小D的 abc 变换问题 | 豆包MarsCode AI刷题

54 阅读1分钟
public class Main {
    public static String solution(String s, int k) {
        // 初始化 StringBuilder
        StringBuilder current = new StringBuilder(s);
        
        // 重复变换 k 次
        for (int i = 0; i < k; i++) {
            StringBuilder next = new StringBuilder();
            
            // 遍历当前字符串中的每个字符
            for (int j = 0; j < current.length(); j++) {
                char c = current.charAt(j);
                
                // 根据变换规则生成新的字符串
                if (c == 'a') {
                    next.append("bc");
                } else if (c == 'b') {
                    next.append("ca");
                } else if (c == 'c') {
                    next.append("ab");
                }
            }
            
            // 更新当前字符串为新生成的字符串
            current = next;
        }
        
        // 返回最终结果
        return current.toString();
    }

    public static void main(String[] args) {
        System.out.println(solution("abc", 2).equals("caababbcbcca"));
        System.out.println(solution("abca", 3).equals("abbcbccabccacaabcaababbcabbcbcca"));
        System.out.println(solution("cba", 1).equals("abcabc"));
    }
}