1.如果A里面有包含B的话那就用C替换掉A里等于B的值:
   A=“ABCDEFG”
   B="AB"
   C="12"
   结果为:“12CDEFG”
注:ABC都有可能是几千KB大。2.给你一个字符串,里面的值都是由0-9的数字,
2.1.字符串里如果前面两位相加会等于第三位数的话,就删除第三位数
2.2.如果前面一个数是后面一个数的一半的话就把后面那个数改成前面那个数。
2.3 忘了3.对下面的数字进行90度转向。
 [1][2][3][4][5]
 [6][7][8][9][A]
 [B][C][D][E][F]
 [G][H][I][J][K]
 [O][P][Q][R][S]
执行完后:
 [O][G][B][6][1]
 [P][H][C][7][2]
 [Q][C][D][8][3]
 [R][I][E][9][4]
 [S][J][F][A][5]

解决方案 »

  1.   

    String a = "ABCDEFG"; 
    String b = "AB" ;
    String c = "12" ;
    a = a.replaceAll(b,c); 就是效率差了点
      

  2.   

    第一个KMP?
    第三个转置矩阵再列逆序
      

  3.   

    第一题: public static void main(String[] args) {
    String A="ABCDEFG";
    String B="AB";
    String C="12";
    String D=A.replaceAll(B, C);
    System.out.println(D);//输出12CDEFG
    }第二题1: public static void main(String[] args) {
    String str = "12347";//1+2=3,3+4=7,所以3和7被删掉
    char[] ch = str.toCharArray();
    char[] rs = new char[ch.length];
    System.arraycopy(ch, 0, rs, 0, ch.length);
    for (int i = 0; i < ch.length-2; i++) {
    int i1 = Integer.parseInt(String.valueOf(ch[i]));
    int i2 = Integer.parseInt(String.valueOf(ch[i+1]));
    int i3 = Integer.parseInt(String.valueOf(ch[i+2]));
    if (i1+i2==i3) {
    rs[i+2] = ' ';
    }
    }
    String s = new String(rs).replaceAll(" ","");
    System.out.println(s);//输出124
    }第二题2:参照1
    第三题: public static void main(String[] args) {
    char[][] src = new char[][] {
    { '1', '2', '3', '4', '5' },
    { '6', '7', '8', '9', 'A' }, 
    { 'B', 'C', 'D', 'E', 'F' },
    { 'G', 'H', 'I', 'J', 'K' }, 
    { 'O', 'P', 'Q', 'R', 'S' }, 
    };
    char[][] dest = new char[src.length][src[0].length];
    for (int i = 0; i < src.length; i++) {
    for (int j = 0; j < src.length; j++) {
    dest[j][4-i] = src[i][j];
    }
    }
    System.out.println(Arrays.deepToString(dest));//[[O, G, B, 6, 1], [P, H, C, 7, 2], [Q, I, D, 8, 3], [R, J, E, 9, 4], [S, K, F, A, 5]]
    }