2024-12-13:有效单词。用go语言,要确定一个字符串是否为有效单

架构师课程 2024-12-13 22:12:30

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),因为只使用了常量级别的额外空间(少量变量和常量字符串)。

Go完整代码如下:package mainimport ( "fmt" "strings" "unicode")func isValid(word string) bool { if len(word) < 3 { return false } vowels := "aeiou" flag1 := false flag2 := false for _, char := range word { if !unicode.IsLetter(char) && !unicode.IsDigit(char) { return false } if strings.ContainsRune(vowels, unicode.ToLower(char)) { flag1 = true } else if unicode.IsLetter(char) { flag2 = true } } return flag1 && flag2}func main() { word := "234Adas" fmt.Println(isValid(word))}

Rust完整代码如下:fn is_valid(word: &str) -> bool { if word.len() < 3 { return false; } let vowels = "aeiou"; let mut has_vowel = false; let mut has_consonant = false; for char in word.chars() { if !char.is_alphanumeric() { return false; } let lower_char = char.to_ascii_lowercase(); if vowels.contains(lower_char) { has_vowel = true; } else if lower_char.is_ascii_alphabetic() { has_consonant = true; } } has_vowel && has_consonant}fn main() { let word = "234Adas"; println!("{}", is_valid(word));}

引用链接

[1] chatgpt: https://chatbotsplace.com/?rc=nnNWSCJ7EP

0 阅读:3