A、B 、C 是 3个字符串。把A中包含的所有B都替换为 C如果替换以后还有 B 就继续替换,直到 A 不包含 B 为止

A、 B 、 C 是 3 个字符串。把 A 中包含的所有 B 都替换为 C ,如果替换以后还有 B 就继续替换,直到 A 不包含 B 为止。
1、请编写程序实现以上功能。不允许使用系统提供的字符串比较、查找和替换函数。

js版代码实现

let a1 = 'aaabbbcccbbbffbbb';
let b1 = 'bbb';
let c1 = 'ddd';

function find(a,b,c){
	while(true){//直到a中没有b
		let num = a.indexOf(b);//确定a中b的开始下标
		console.log(num)
		if(num != -1){//查找到
			let Aarr = a.split('');//转换成数组
			a = '';
			let count = 0;
			Aarr.map((item,index)=>{
				// console.log(item,index);
				if(index>=num && index<num+b.length){
					if(count == 0){
						a += c;
					}
					count ++;
				}else{
					a += Aarr[index];
				}
			})
		}else{
			return a;
		}
	}
}
let f = find(a1,b1,c1);
console.log(f);
public class Test1 {
    public static void main(String[] args) {
        String a = "aabbccbb";
        String b = "bb";
        String c = "eeee";
        a = func(a, b, c);
        System.out.println(a);
    }

    public static String func(String a,String b,String c){
        while(true){
            int num = a.indexOf(b);
            if (num != -1){
                char[] a_chars = a.toCharArray();
                a = "";
                int count = 0;
                for (int i = 0; i < a_chars.length; i++){
                    if (i >= num && i < num + b.length()){
                        if (count == 0){
                            a = a + c;
                        }
                        count ++;
                    }else{
                        a = a + a_chars[i];
                    }
                }
            }else{
               // System.out.println(a);
                return a;
            }
        }
    }
}

X Y Z 是三维坐标系。线段 A B 保持 A 点不动,围绕 Z 轴方向 (红色虚线示意
逆时针旋转( B 点移动到 C 点位置) ),旋转角度相当于在 X Y 平面投影的 30 度 。 求 C 点坐
标。

这题实在不会,请会的在评论区写一下这个解法或者思路,谢谢 

 

 

 

posted @ 2020-08-18 16:40  JackieDYH  阅读(8)  评论(0编辑  收藏  举报  来源