普及模考T1の题解

首先我们将每种 noip 的大小写情况打出来,注意一定要用 char 因为 string 的每位类型为 char

这就是所有可能:char d[20][10]={{'n','o','i','p'},{'N','o','i','p'},{'n','O','i','p'},{'n','o','I','p'},{'n','o','i','P'},{'N','O','i','p'},{'N','o','I','p'},{'N','o','i','P'},{'n','O','I','p'},{'n','O','i','P'},{'n','o','I','P'},{'N','O','I','p'},{'N','O','i','P'},{'N','o','I','P'},{'n','O','I','P'},{'N','O','I','P'}};

接下来模拟一下就行了从字符串的第一位开始,每次读取 4 位,判断这 4 位是否与 noip16 种形式有相同,如果有就输出 CSP,并且将 i4

如果不是则就输出 a_i 并且将 i 加一。

伪代码:

    while(i<a.size()){
		bool flag=0;
		for(int j=0;j<16;j++){//查看是否有相同
			if(/*判断条件 */){
				flag=1;
				break;
			}
		}
		if(flag){
			cout<<"CSP";
			i+=4;
		}
		else{
			cout<<a[i];
			i++;
		}
	}
1 个赞

我这不更好:string d[]={"noip","Noip","nOip","noIp","noiP","NOip","NoIp","NoiP","nOIp,"nOiP","noIP”,"NOIp","NOiP","NoIP","nOIP","NOIP"};

@jhxs1516 你这样枚举4个位置的时候是char类型与string不匹配

1.用substr可以解决(无需枚举)
2.string配合下标就是char类型