class Solution {
public:
bool isValid(string word) {
}
};
100284. 有效单词
有效单词 需要满足以下几个条件:
给你一个字符串 word
。如果 word
是一个有效单词,则返回 true
,否则返回 false
。
注意:
'a'
、'e'
、'i'
、'o'
、'u'
及其大写形式都属于 元音字母 。
示例 1:
输入:word = "234Adas"
输出:true
解释:
这个单词满足所有条件。
示例 2:
输入:word = "b3"
输出:false
解释:
这个单词的长度少于 3 且没有包含元音字母。
示例 3:
输入:word = "a3$e"
输出:false
解释:
这个单词包含了 '$'
字符且没有包含辅音字母。
提示:
1 <= word.length <= 20
word
由英文大写和小写字母、数字、'@'
、'#'
和 '$'
组成。原站题解
cpp 解法, 执行用时: 4 ms, 内存消耗: 7.4 MB, 提交时间: 2024-05-06 10:03:02
class Solution { public: bool isValid(string word) { if (word.length() < 3) { return false; } bool f[2]{}; for (char c : word) { if (isalpha(c)) { c = tolower(c); f[c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'] = true; } else if (!isdigit(c)) { return false; } } return f[0] && f[1]; } };
java 解法, 执行用时: 1 ms, 内存消耗: 41.1 MB, 提交时间: 2024-05-06 10:02:40
class Solution { public boolean isValid(String word) { if (word.length() < 3) { return false; } boolean[] f = new boolean[2]; Arrays.fill(f, false); for (char c : word.toCharArray()) { if (Character.isAlphabetic(c)) { c = Character.toLowerCase(c); f[c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ? 1 : 0] = true; } else if (!Character.isDigit(c)) { return false; } } return f[0] && f[1]; } }
golang 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2024-05-06 10:02:24
func isValid(word string) bool { if len(word) < 3 { return false } var f0, f1 bool for _, c := range word { if unicode.IsLetter(c) { if strings.ContainsRune("aeiou", unicode.ToLower(c)) { f1 = true } else { f0 = true } } else if !unicode.IsDigit(c) { return false } } return f0 && f1 }
python3 解法, 执行用时: 35 ms, 内存消耗: 16.4 MB, 提交时间: 2024-05-06 10:01:58
class Solution: def isValid(self, word: str) -> bool: if len(word) < 3: return False f = [False] * 2 # f0 和 f1 分别记录是否有元音和辅音字母 for c in word: if c.isalpha(): f[c.lower() in "aeiou"] = True elif not c.isdigit(): return False return all(f)