标签:log 个数 string while stream name cout color 解题思路
题目描述:由两个完全一样的字符串组成的字符串称之为偶串,输入一个字符串,从末尾去掉若干个字符,还能构成偶串,问构成偶串的最大长度
解题思路:本题偶串,字符个数肯定为偶数个,从末尾开始删除,每次也必须删除偶数个才能保证可能为偶串,因此删除2 4 6 等等
定义start为起始位置,mid为偶串中的右部分串的起始点,每次从末尾去掉2个,然后更新mid,d(删除个数),然后判断是否为偶串,是则结束,输出s.size()-d,不是,则继续查找,直到结束
1 #include <iostream> 2 #include <string.h> 3 using namespace std; 4 bool isOUchuan(string str,int start1,int start2) 5 { 6 int end = start2; 7 //cout<<end<<endl; 8 bool flag = true; 9 while(start1 < end) 10 { 11 if(str[start1] != str[start2]) 12 { 13 flag = false; 14 break; 15 } 16 start1++; 17 start2++; 18 } 19 /*if(flag) 20 cout<<"true"<<endl; 21 else 22 cout<<"false"<<endl;*/ 23 return flag; 24 } 25 int main() 26 { 27 string s; 28 cin>>s; 29 int start = 0; 30 int n = s.size(); 31 int mid = (start+n)/2; 32 int d = 2; 33 n = n - d; 34 while(n>0) 35 { 36 //cout<<"mid"<<mid<<endl; 37 if(isOUchuan(s,start,mid-1)) 38 { 39 break; 40 } 41 else 42 { 43 d +=2; 44 mid = mid-1; 45 n = n - 2; 46 } 47 } 48 cout<<s.size()-d<<endl; 49 return 0; 50 }
标签:log 个数 string while stream name cout color 解题思路
原文地址:http://www.cnblogs.com/qqky/p/7236452.html