import java.math.BigInteger;public class Main {public static int solution(int n, int k, String numStr) {//1.使用可变字符串StringBufferStringBuffer sb = new StringBuffer(numStr);//2.循环k次for (int i = 0; i < k; i++) {//2.1 创建临时可变字符串 StringBuffer newsb = new StringBuffer();//2.2 遍历可变字符串,将每个字符转为数字+1for (int j = 0; j < sb.length(); j++) {newsb.append(sb.charAt(j) - '0' + 1);}//2.3 将临时可变字符串赋值给可变字符串sb = newsb;}//3.将可变字符串转为BigInteger类型,再取模BigInteger bi = new BigInteger(sb.toString());bi = bi.mod(BigInteger.valueOf(1000000007));return bi.intValue();}
}
核心思路:
1.两层循环
第一层循环k次
第二层循环取出每个字符,加一,然后拼接到新的字符串上
2.java.math.BigInteger的使用,由于结果的字符串类型数字可能过长,long类型也收不下,就用大数BigInteger来接受,然后进行取模运算,最后转成int类型返回