给定一个字符串,计算以'y'
或'z'
结尾的单词数-因此,“ heavy”中的'y'
和“ fez”中的'z'
进行计数,但不计算“ yellow”中的'y'
(不区分大小写)。我们将说y
或z
在单词的末尾,如果紧随其后的不是字母。 (注意:Character.isLetter(char)
测试字符是否为字母。)
例如,
countYZ("fez day") → 2
countYZ("day fez") → 2
countYZ("day fyyyz") → 2
countYZ("day yak") → 1
countYZ("day:yak") → 1
countYZ("!!day--yaz!!") → 2
但是我在这些情况下失败了:
countYZ("fez day") → should be 2 but Im getting 1
countYZ("day fez") → should be 2 but Im getting 1
countYZ("day fyyyz") → should be 2 but Im getting 1
smb可以看看我的代码有什么问题吗?提前致谢!
public int countYZ(String str) {
int count = 0;
for(int i = 0; i < str.length()-1; i++){
if((str.charAt(i) == 'y' || str.charAt(i) == 'z')
&& !(Character.isLetter(str.charAt(i + 1)))){
count++;
}
}
return count;
}
最佳答案
您需要在字符串的末尾包含逻辑的特殊情况。