[程式設計題] 黑化的牛牛
時間限制:1秒
空間限制:32768k
牛牛變得黑化了,想要摧毀掉地球。但他忘記了開啟地球毀滅器的密碼。牛牛手裡有乙個字串s,牛牛還記得從s中去掉乙個字元就恰好是正確的密碼,請你幫牛牛求出他最多需要嘗試多少次密碼。
如樣例所示s = "aba",3個可能的密碼是"ba", "aa", "ab".
當s = "a", 牛牛唯一可以嘗試的密碼是乙個空的密碼,所以輸出1.
輸入描述:
輸入包括乙個字串s,字串長度length(1 ≤ length ≤ 50),其中都是從'a'到'z'的大寫字母。
輸出描述:
輸出乙個整數,表示牛牛最多需要嘗試的密碼次數。
思路分析:
由於是需要每次去掉字串s中的乙個字元,因此需要找到s中所有去掉乙個字元後的子串,並且裡面沒有重複的子串。
這裡我們可以利用stl中set集合容器。set不允許兩個元素有相同的鍵值。因此可以將所有可能的子串存放到set容器中,達到不出現重複子串的目的。
set的特性是,所有元素都會根據元素的鍵值自動排序,set的元素不像map那樣可以同時擁有實值(value)和鍵值(key),set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。
#include#includeusing namespace std;
string substring(string s,int n) //函式作用:去掉第i個位置後得到的子串,就是把所有的i後面的元素往前移動一位
{ int length=s.size();
for(int i=n;isubstr;
int count;
while(cin>>s)
{int length=s.size( );
if(length==1) //題目意思很清楚,當字串s中只有乙個字元時需要做特殊處理
{cout<<"1"<
程式設計題 黑化的牛牛
牛牛變得黑化了,想要摧毀掉地球。但他忘記了開啟地球毀滅器的密碼。牛牛手裡有乙個字串s,牛牛還記得從s中去掉乙個字元就恰好是正確的密碼,請你幫牛牛求出他最多需要嘗試多少次密碼。如樣例所示s aba 3個可能的密碼是 ba aa ab 當s a 牛牛唯一可以嘗試的密碼是乙個空的密碼,所以輸出1.輸入描述...
程式設計題 黑化的牛牛
牛牛變得黑化了,想要摧毀掉地球。但他忘記了開啟地球毀滅器的密碼。牛牛手裡有乙個字串s,牛牛還記得從s中去掉乙個字元就恰好是正確的密碼,請你幫牛牛求出他最多需要嘗試多少次密碼。如樣例所示s aba 3個可能的密碼是 ba aa ab 當s a 牛牛唯一可以嘗試的密碼是乙個空的密碼,所以輸出1.輸入描述...
程式設計題 黑化的牛牛
程式設計題 黑化的牛牛,牛牛變得黑化了,想要摧毀掉地球。但他忘記了開啟地球毀滅器的密碼。牛牛手裡有乙個字串s,牛牛還記得從s中去掉乙個字元就恰好是正確的密碼,請你幫牛牛求出他最多需要嘗試多少次密碼。如樣例所示s aba 3個可能的密碼是 ba aa ab 當s a 牛牛唯一可以嘗試的密碼是乙個空的密...