黑化的牛牛

2021-08-03 07:40:17 字數 1067 閱讀 7359

[程式設計題] 黑化的牛牛

時間限制: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 牛牛唯一可以嘗試的密碼是乙個空的密...