题意
给你一个字符串,让你找出这个字符串以元音字母开头(a,e,i,o,u),辅音字母结尾的所有子串,中的字典序最大串和最小串。
思路
虽然是面试题,但是我觉得这是我见过的最难的面试题
暴力解
#include<iostream>
#include<unordered_set>
#include<string>
using namespace std;
int main(int argc, char const *argv[])
{
unordered_set<char> st;
st.insert('a');
st.insert('e');
st.insert('i');
st.insert('o');
st.insert('u');
string minString = "", maxString = "";
int index[2] = {
-1, -1};
string s = "abcdeuudeaeauuzaaa";
for(int i = s.length() - 1; i >= 0; i--)
{
if(st.count(s[i]) == 0)
{
if(index[0] == -1)
index[1] = i;
index[0] = i;
}
else
{
if(index[0] == -1)
continue;
string a = s.substr(i, index[0] + 1 - i);
string b = s.substr(i, index[1] + 1 - i);
if(minString.length() == 0)
{
minString = a;
maxString = b;
}
else