题目:3136. 有效单词
思路:字符串,时间复杂度0(n)。
C++版本:
class Solution {
public:
bool isValid(string word) {
int n=word.size();
if(n<3) return false;
bool flag1=0,flag2=0;
for(auto x:word){
if('0'<=x&&x<='9') continue;
else if ('a'<=x&&x<='z'|| 'A'<=x&&x<='Z'){
if( x=='a' || x=='e' || x=='i' || x=='o' || x=='u' || x=='A' || x=='E' || x=='I' || x=='O' || x=='U'){
flag1=true;
}else{
flag2=true;
}
continue;
}
return false;
}
if(flag1&&flag2) return true;
return false;
}
};
JAVA版本:
class Solution {
public boolean isValid(String word) {
int n=word.length();
if(n<3) return false;
boolean flag1=false,flag2=false;
for(var x:word.toCharArray()){
if('0'<=x&&x<='9') continue;
else if ('a'<=x&&x<='z'|| 'A'<=x&&x<='Z'){
if( x=='a' || x=='e' || x=='i' || x=='o' || x=='u' || x=='A' || x=='E' || x=='I' || x=='O' || x=='U'){
flag1=true;
}else{
flag2=true;
}
continue;
}
return false;
}
if(flag1&&flag2) return true;
return false;
}
}
GO版本:
func isValid(word string) bool {
n:=len(word)
if n<3 {
return false
}
flag1,flag2:=false,false
for _,x:=range word{
if '0'<=x&&x<='9' {
continue;
}else if 'a'<=x&&x<='z'|| 'A'<=x&&x<='Z' {
if x=='a' || x=='e' || x=='i' || x=='o' || x=='u' || x=='A' || x=='E' || x=='I' || x=='O' || x=='U' {
flag1=true;
}else{
flag2=true;
}
continue;
}
return false;
}
if flag1&&flag2 {
return true
}
return false;
}