Lucky PIN题解
IcyFoxer_XZY · · 题解
题目传送门
这题难度不大,可以直接枚举。
分析
看到这题,我们就可以想到应从
枚举的过程就相对简单了。把整个字符串遍历一遍,一位一位判断。当三位 PIN 码在字符串中依次存在时这就算一个合法的 PIN 码了。
最后输出合法的 PIN 码的数量。
代码:
#include<bits/stdc++.h>
using namespace std;
int n,sum;
string s;
bool check(int x){
bool w1=false,w2=false,w3=false;
for(int i=0;i<n;++i){
if(s[i]==char(x/100+48)&&!w1)w1=true;//第一位判断
else if(s[i]==char((x/10)%10+48)&&w1&&!w2)w2=true;//第二位判断
else if(s[i]==char(x%10+48)&&w2)w3=true;//第三位判断
}
return w3;
}
int main(){
cin>>n>>s;
for(int i=0;i<=999;++i)
if(check(i))
sum++;//i为合法的PIN码
cout<<sum;
return 0;
}
Bye!