106、檢測大寫字母
阿新 • • 發佈:2018-12-23
給定一個單詞,你需要判斷單詞的大寫使用是否正確。
我們定義,在以下情況時,單詞的大寫用法是正確的:
全部字母都是大寫,比如"USA"。
單詞中所有字母都不是大寫,比如"leetcode"。
如果單詞不只含有一個字母,只有首字母大寫, 比如 “Google”。
否則,我們定義這個單詞沒有正確使用大寫字母。
很簡單的一道題目,但是我這個程式碼絕對是可以完善的
class Solution { public boolean detectCapitalUse(String word) { if(word.length() == 1 || word.length() == 0){ return true; } char []tem = word.toCharArray(); if(Character.isUpperCase(tem[0])){ //以大寫開頭 if(word.length() == 2){ return true; }else { //第二個字母是大寫,那麼後面都必須是大寫 if(Character.isUpperCase(tem[1])){ for (int i = 2; i < tem.length; i++) { char c = tem[i]; if(!Character.isUpperCase(c)){ return false; } } return true; }else { //如果第二個字母是小寫那麼後面都是小寫 for (int i = 2; i < tem.length; i++) { char c = tem[i]; if(Character.isUpperCase(c)){ return false; } } return true; } } }else { //以小寫開頭 for (char c : tem) { if(Character.isUpperCase(c)){ return false; } } return true; } } }
思考:可以這麼來,首先是一個for迴圈轉成對應的int陣列,根據數字來判斷是大寫還是小寫,但是這樣更加複雜了;
class Solution { public boolean detectCapitalUse(String word) { boolean flag=true; if(word.charAt(0)<=122&&word.charAt(0)>=97){ //flag=true; for(int i=1;i<word.length();i++){ if(word.charAt(i)>122||word.charAt(i)<97) { flag=false; break; } } } else if(word.length()!=1){ if(word.charAt(1)<=122&&word.charAt(1)>=97) for(int i=1;i<word.length();i++){ if(word.charAt(i)>122||word.charAt(i)<97) { flag=false; break; } } else for(int i=1;i<word.length();i++){ if(word.charAt(i)>90||word.charAt(i)<65) { flag=false; break; } } } //else if(word.charAt(0)<=90&&word.charAt(0)>=65) return flag; } }