给定一个字符串,计算以'y''z'结尾的单词数-因此,“ heavy”中的'y'和“ fez”中的'z'进行计数,但不计算“ yellow”中的'y' (不区分大小写)。我们将说yz在单词的末尾,如果紧随其后的不是字母。 (注意: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;
}

最佳答案

您需要在字符串的末尾包含逻辑的特殊情况。

10-08 00:05