【编程题】 黑化的牛牛
2017-06-20 22:43
148 查看
牛牛变得黑化了,想要摧毁掉地球。但他忘记了开启地球毁灭器的密码。牛牛手里有一个字符串S,牛牛还记得从S中去掉一个字符就恰好是正确的密码,请你帮牛牛求出他最多需要尝试多少次密码。
如样例所示S = "ABA",3个可能的密码是"BA", "AA", "AB".
当S = "A", 牛牛唯一可以尝试的密码是一个空的密码,所以输出1.
输入描述:
输出描述:
输入例子:
输出例子:
3
#include <iostream>
#include <set>
using namespace std;
/******************************
1.遍历字符串
2.取子串,放入set集合
3.最终set集合的长度即是结果
*******************************/
int main()
{
string str;
set<string> paswds;
cin>>str;
int nCount = str.length();
if(nCount ==1)
{
cout<<1;
return 0;
}
for(int i = 0;i< nCount;++i)
{
paswds.insert(str.substr(0,i)+str.substr(i+1,nCount-i-1));
}
cout<<paswds.size()<<endl;
}
如样例所示S = "ABA",3个可能的密码是"BA", "AA", "AB".
当S = "A", 牛牛唯一可以尝试的密码是一个空的密码,所以输出1.
输入描述:
输入包括一个字符串S,字符串长度length(1 ≤ length ≤ 50),其中都是从'A'到'Z'的大写字母。
输出描述:
输出一个整数,表示牛牛最多需要尝试的密码次数。
输入例子:
ABA
输出例子:
3
#include <iostream>
#include <set>
using namespace std;
/******************************
1.遍历字符串
2.取子串,放入set集合
3.最终set集合的长度即是结果
*******************************/
int main()
{
string str;
set<string> paswds;
cin>>str;
int nCount = str.length();
if(nCount ==1)
{
cout<<1;
return 0;
}
for(int i = 0;i< nCount;++i)
{
paswds.insert(str.substr(0,i)+str.substr(i+1,nCount-i-1));
}
cout<<paswds.size()<<endl;
}