目录
- 题目描述:
- 输入:
- 输出:
- 代码实现:
题目描述:
有效单词 需要满足以下几个条件:
至少 包含 3 个字符。
由数字 0-9 和英文大小写字母组成。(不必包含所有这类字符。)
至少 包含一个 元音字母 。
至少 包含一个 辅音字母 。
给你一个字符串 word 。如果 word 是一个有效单词,则返回 true ,否则返回 false 。
注意:
‘a’、‘e’、‘i’、‘o’、‘u’ 及其大写形式都属于 元音字母 。
英文中的 辅音字母 是指那些除元音字母之外的字母。
输入:
word = "234Adas"
输出:
true
解释:
这个单词满足所有条件。
代码实现:
class Solution {
public boolean isValid(String word) {
int len = word.length();// 单词长度
String lowerCase = word.toLowerCase();// 将字母全部改小写
int cntY = 0;// 元音字母个数
int cntF = 0;// 辅音字母个数
for (int i = 0; i < len; i++) {// 遍历单词
char c = lowerCase.charAt(i);// 获取每一个字符
if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z')) {// 在0~9和a~z之间
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
cntY++;// 判断元音个数
} else if (c >= '0' && c <= '9') {
continue;// 数字直接跳过本轮循环
} else {
cntF++;// 判断辅音个数
}
} else {
// 其他情况返回假
return false;
}
}
return len >= 3 ? (cntF >= 1 && cntY >= 1) : false;// 长度大于3,且辅音,元音均大于1,才返回真
}
}