題目描述
實現函數ToLowerCase()
,該函數接收一個字符串參數str
,並將該字符串中的大寫字母轉換成小寫字母,之後返回新的字符串。
示例1:
輸入: “Hello”
輸出: “hello”
示例2:
輸入: “here”
輸出: “here”
示例3:
輸入: “Lovely”
輸出: “lovely”
思路分析
題目難度爲簡單 ,這裏需要的就是遍歷字符串,判定大寫字母字符並轉換成小寫字母字符,這裏唯一需要注意的一點是ASCII
碼錶中的大小寫字母碼數相差32
。
我們使用StringBuiler
爲輔助容器,這裏直接給出代碼:
解題代碼
public static String solution(String s) {
if(s == null) return null;
StringBuilder res = new StringBuilder();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c < 'a')
c = (char) (c + 32);
res.append(c);
}
return res.toString();
}
複雜度分析
時間複雜度: 這裏對每個字符進行了一次訪問,時間複雜度爲O(n)
;
空間複雜度: 借用StringBuilder
爲輔助容器,故空間複雜度爲O(n)
。
Github源碼
完整可運行文件請訪問GitHub。