leetcode 520. 大文字の検出(java)


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

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

    例2:
      : "FlaG"
      : False
    

    注意:入力は、大文字と小文字のアルファベットからなる空でない単語です.
    自分で书いたコードは、Stringコードを使わないと复雑に见えます...:
    class Solution {
        public boolean detectCapitalUse(String word) {
            if(word==null)return false;
            if(word.length()==1)return true;
            char [] res=word.toCharArray();
            System.out.println(res.length);
            int flag=1;
            for(int i=0;i=0&&res[i]-'Z'<=0){//       ,        ,      
                    i++;
                    if(res[i]-'a'>=0&&res[i]-'z'<=0){//       ,       ,         
                            while(i0)
                                    return false;
                                i++;
                            }
                    }else{                            //       ,       ,         
                        while(i0)
                                return false;
                            i++;
                        }
                    }
                }
                else{//         ,            
                    while(i0)
                            return false;
                        i++;
                    }
                }
            }
            return true;
        }
    }

    大人のコードを見てみましょう
    public boolean detectCapitalUse(String word) {
    	//     2,  true
    	if (word.length() < 2)
    		return true;
    	//         
    	if (word.toUpperCase().equals(word))
    		return true;
    	//              (           )
    	if (word.substring(1).toLowerCase().
    			equals(word.substring(1)))
    		return true;
    	return false;
    }