題目描述
定義:當一個字符串只有元音字母(aeiouAEIOU)組成,稱為元音字符串。
現給定一個字符串,請找出其中最長的元音字符子串,並返回其長度;如果找不到,則返回0。
子串:字符串中任意個連續的字符組成的子序列稱為該字符串的子串。
解答要求時間限制:1000ms, 內存限制:256MB
輸入
一個字符串,其長度范圍: 0 < length <= 65535。
字符串僅由字符
a-z和A-Z組成。
輸出
一個整數,表示最長的元音字符子串的長度。
樣例
輸入
asdbuiodevauufgh
輸出
3
public static void main(String[] args) {
Scanner cin = new Scanner(System.in, StandardCharsets.UTF_8.name());
String input = cin.nextLine();
cin.close();
System.out.println(getLongestVowelStringLength(input));
}
// 待實現函數,在此函數中填入答題代碼
private static int getLongestVowelStringLength(String input) {
String str = "aeiouAEIOU";
Stack<Character> sta = new Stack<>();
int size = sta.size();
for (int i = 0; i < input.length(); i++) {
char cha = input.charAt(i);
if (str.contains("" + cha)) {
sta.push(cha);
} else {
size = Math.max(size, sta.size());
sta.clear();
}
}
return Math.max(size, sta.size());
}
