枚举范围内的字符串

我写的:

public int VowelStrings(string[] words, int left, int right) {
        string s="aeiou";
        int k=0;
        for(int i=left;i<=right;i++)
        {  
           int x=0,y=0;
           string word= words[i];
           int wordLong=word.Length ; 
           char start=word[0];
           char end=word[wordLong-1];          
          foreach( char n in s)
          {
             if(n==start)
             {
              x++;
             }
             if(n==end)
             {
                y++;
             }
          }  
          if(x==1&&y==1)
          {
            k++;
          }        

        }
        return k;

    }

  答案:

public class Solution {
    public int VowelStrings(string[] words, int left, int right) {
        ISet<char> vowels = new HashSet<char>() { 'a', 'e', 'i', 'o', 'u' };
        int ans = 0;
        for (int i = left; i <= right; ++i) {
            string word = words[i];
            if (vowels.Contains(word[0]) && vowels.Contains(word[word.Length - 1])) {
                ++ans;
            }
        }
        return ans;
    }
}

作者:力扣官方题解
链接:https://leetcode.cn/problems/count-the-number-of-vowel-strings-in-range/solutions/2515213/tong-ji-fan-wei-nei-de-yuan-yin-zi-fu-ch-dau9/

  还是用哈希表简单呀

posted @ 2024-05-02 13:48  yinghualeihenmei  阅读(3)  评论(0编辑  收藏  举报