解题思路:
1.输入s
2.用set保存所有长度为8的s的子串 //方便判断
3.输入n,循环n次:
1).输入密码串s
2).排序s,方便用库函数遍历所有排列组合
3).遍历时,如果st中有这个字符串则ans++
4.输出ans
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; string s; set<string> st; int main(){ cin>>s; int n=s.length(); for(int i=0;i+7<n;i++)st.insert(s.substr(i,8));//set长度为8的子串 cin>>n; int ans=0; while(n--){ cin>>s; sort(s.begin(),s.end()); do{ if(st.count(s))ans++; }while(next_permutation(s.begin(),s.end())); } cout<<ans<<endl; }
0.0分
4 人评分
兰顿蚂蚁 (C++代码)浏览:1225 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:1555 |
蛇行矩阵 (C语言代码)浏览:606 |
愚蠢的摄影师 (C++代码)浏览:980 |
字符逆序 (C语言代码)浏览:506 |
大家好,我是验题君浏览:604 |
C二级辅导-求偶数和 (C语言代码)浏览:707 |
一元一次方程 (C语言代码)浏览:4245 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:545 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:399 |