$题解 AT1766 暗証番号$
Posted luke-skywalker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$题解 AT1766 暗証番号$相关的知识,希望对你有一定的参考价值。
一道灰题(暂无评定)(
题面上给的),但我觉的这是一道十分简单的红题(入门),估计刚学\(OI\)的小伙伴都会。好了,废话不多扯了,看题吧。
题目翻译已经给出来了,我就不多啰嗦了,因为\(n\)为四位数,完全可以使用int
来做,但我因为方\((tou)\)便\((lan)\),就使用string
做了。
接下来说一下本题的基本算法框架。
因为在本题解中,数的储存方式是string
,所以,会变的十分简单。
只要一个for
循环,从字符串的第二位开始枚举,到字符串的最后一位结束。
将当前枚举到的那个位上的数与上一位的那个数进行对比,如果发现不一样,那就不符合题目要求,则cout<<"DIFFERENT"<<endl;
再return 0;
。
如果循环完了还没有发现不一样的,那输入的那个数肯定符合要求,则cout<<"SAME"<<endl;
。
好了,本题基本算法的框架就完工了,如果还没明白的请看代码进一步进行理解。
#include<bits/stdc++.h> //万能头
using namespace std;
int main()
string s; //定义字符串
cin>>s; //将字符串输入
for(int i=1;i<s.size();i++) //开始枚举
if(s[i]!=s[i-1]) //如果发现当前位的数和上一位数不一样
cout<<"DIFFERENT"<<endl; //输出
return 0; //直接结束程序
cout<<"SAME"<<endl; //每一位数都相同
return 0; //结束程序
以上是关于$题解 AT1766 暗証番号$的主要内容,如果未能解决你的问题,请参考以下文章