【发布时间】:2021-07-09 20:44:13
【问题描述】:
我正在为类做一个程序,给定一个字符串,获得由连续 {辅音,元音} 模式组成的最长子字符串,但我被要求以分而治之的方式进行。这是我的算法,但我不知道它是否是 D&V 算法。如果不是,我该如何修改它?
int cadenaMasLargaDeVC(string str) {
int n = str.size();
string strRes, strTmp = "";
int posRes = 0;
set<char> st;
st.insert('a');
st.insert('e');
st.insert('i');
st.insert('o');
st.insert('u');
for(int i = 0; i<n; i++){
cout << i << " ";
if(st.find(str[i]) == st.end() && st.find(str[i+1]) != st.end()){
strTmp += string(str[i]) + str[i+1];
i++;
} else{
strTmp = "";
}
if(strTmp.size() > strRes.size()){
strRes = strTmp;
posRes = i - strRes.size() + 2;
}
if(strRes.size() > (n-i)) break;
}
cout << strRes << endl;
return posRes;
}
【问题讨论】:
标签: c++ algorithm search data-structures divide-and-conquer