[Leetcode] 520. 大文字の検出


タイトルの説明:
単語を指定するには、単語の大文字の使用が正しいかどうかを判断する必要があります.
次の場合、単語の大文字の使い方が正しいと定義します.
  • はすべて大文字で、例えば「USA」です.
  • 単語のすべてのアルファベットは大文字ではありません.例えば、「leetcode」です.
  • 単語にアルファベットが1つだけ含まれていない場合は、「Google」などの頭文字だけが大文字になります.

  • そうでなければ、この単語が大文字で正しく使用されていないことを定義します.
    例1:
      : "USA"
      : True
    

    例2:
      : "FlaG"
      : False
    

    注意:入力は、大文字と小文字のアルファベットからなる空でない単語です.
    問題解決の考え方:
    このテーマの私の考え方は、単語に値を設定して、初期値は0で、単語の中で1つの大文字に出会うたびにこの値を1プラスして、もし小文字のアルファベットならば変わらないで、それでは以下の3つの情況の下で大文字の使用の時に正しいだけあります:
    1であれば、小文字であれば0ですが、
    2、すべて大文字であれば値はその文字列の長さであり、
    3、値が1の場合は、頭文字が大文字であるかどうかを見てみましょう.
    その他の場合は使用が間違っていることを示します.
    コード実装(Java言語):
    class Solution {
        public boolean detectCapitalUse(String word) {
            char[] letters = word.toCharArray();
            int len = letters.length;
            int value = 0;
            for(int i = 0;i < len;i++){
                if(letters[i] <= 'Z' && letters[i] >= 'A'){
                    value = value + 1;
                }
            }
            if(value == len || value == 0)
                return true;
            if(value == 1 && letters[0] <= 'Z' && letters[0] >= 'A')
                return true;
            return false;
        }
    }