c语言找不同,简单的版

输入数据有多组,每组数据给出一个字符串 S ,如果 S 中的每个字符都是一样的,请输出“YooQ mei you pian wo”,否则请找出字符串 S 中与其他字符不同的字符并输出它。输入数据保证如果存在不同的字符的话,这个字符有且只有一个。

输入格式
在第一行给出一个正整数 T(1<=T<=100) 。表示共有 T 组数据。

接下来 T 行,每行给出一个字符串 S(3<=∣S∣<=50) 。

输出格式:
对于每一组输入数据,输出一行,如果存在某个不同的字符,请输出这个字符,否则请输出“YooQ mei you pian wo”,不带引号。

输入样例:
3
2个a o 两个a
6个a
7个a一个q
输出样例:
o
YooQ mei you pian wo
q

#include
#include
#include
#include
using namespace std;
//回溯法
bool IsPalindRome(string str){
int end=str.length()-1;
int start=0;
while(start<end){
if(str[start]==str[end]){
start++;
end--;
}else{
return false;
}
}
return true;
}

void partitionCore(string s,vector<vector>& result,vector& path){
int len=s.size();
if(len<1){
result.push_back(path);
}
for(int i=0;i<len;i++){
string str=s.substr(0,i-0+1);
if(IsPalindRome(str)){
path.push_back(str);
partitionCore(s.substr(i+1),result,path);
path.pop_back();
}
}
}

vector<vector> partition(string s) {
vector<vector > result;
vector path;
partitionCore(s,result,path);
return result;
}

int main()
{
string s;
cin>>s;
vector<vector > re;
vectorfin;
re=partition(s);
for(int i=0;i<re.size();i++)
{
for(int j=0;j<re[i].size();j++)
{
//cout<<re[i][j]<<" ";
fin.push_back(re[i][j]);
}
}
//cout<<endl;
sort(fin.begin(),fin.end());
vector::iterator its=fin.end();
vector::iterator ite;
ite=unique(fin.begin(),fin.end());
fin.erase(ite,its);
cout<<fin.size();

return 0;

}