2024-12-13:有效单词。用go语言,要确定一个字符串是否为有效单词,需满足以下条件:
1.字符串至少包含3个字符。
2.字符串由数字0-9和英文字母(大小写)组成,不需要包含所有这些字符。
3.字符串中至少包含一个元音字母(a, e, i, o, u及其大写形式)。
4.字符串中至少包含一个辅音字母,即除元音字母外的其他字母。
给定一个字符串 word,如果满足上述条件,则返回true;否则返回false。
1 <= word.length <= 20。
word 由英文大写和小写字母、数字、'@'、'#' 和 '$' 组成。
输入:word = "234Adas"。
输出:true。
解释:
这个单词满足所有条件。
答案2024-12-13:
chatgpt[1]
题目来自leetcode3136。
1.函数isValid
接收一个字符串作为输入参数,用于判断该字符串是否满足有效单词的条件。
2.首先检查字符串的长度是否小于3,如果是,则直接返回false
。
3.初始化英文字母中的元音字母字符串变量vowels
为"aeiou",以及两个布尔变量flag1
和flag2
用于标记是否出现元音字母和辅音字母。
4.遍历输入的字符串word
中的每个字符,对每个字符执行以下操作:
false
表示不是有效单词。flag1
标记为true
;若不是则标记flag2
为true
。5.最后,检查flag1
和flag2
是否都为true
,如果都为true
则返回true
表示是有效单词,否则返回false
。
6.在main
函数中,定义一个字符串word = "234Adas"
做为例子,调用isValid
函数并打印返回结果。
总体时间复杂度为O(n),其中n是输入字符串word
的长度。
空间复杂度为O(1),因为只使用了常量级别的额外空间(少量变量和常量字符串)。
package main
import(
"fmt"
"strings"
"unicode"
)
func isValid(word string)bool{
iflen(word)<3{
returnfalse
}
vowels :="aeiou"
flag1 :=false
flag2 :=false
for _,char:=range word {
if!unicode.IsLetter(char)&&!unicode.IsDigit(char){
returnfalse
}
if strings.ContainsRune(vowels, unicode.ToLower(char)){
flag1 =true
}elseif unicode.IsLetter(char){
flag2 =true
}
}
return flag1 && flag2
}
func main(){
word :="234Adas"
fmt.Println(isValid(word))
}
fn is_valid(word:&str)->bool{
if word.len()<3{
returnfalse;
}
letvowels="aeiou";
letmut has_vowel=false;
letmut has_consonant=false;
forcharin word.chars(){
if!char.is_alphanumeric(){
returnfalse;
}
letlower_char=char.to_ascii_lowercase();
if vowels.contains(lower_char){
has_vowel =true;
}elseif lower_char.is_ascii_alphabetic(){
has_consonant =true;
}
}
has_vowel && has_consonant
}
fnmain(){
letword="234Adas";
println!("{}",is_valid(word));
}
[1]
chatgpt: https://chatbotsplace.com/?rc=nnNWSCJ7EP