0709. To Lower Case - kumaeki/LeetCode GitHub Wiki

0709. To Lower Case


Given a string s, return the string after replacing every uppercase letter with the same lowercase letter.

Example 1:

Input: s = "Hello"
Output: "hello"

Example 2:

Input: s = "here"
Output: "here"

Example 3:

Input: s = "LOVELY"
Output: "lovely"

Constraints:

  • 1 <= s.length <= 100
  • s consists of printable ASCII characters.

# 解法1

用map来保存映射关系.

class Solution {
    public static Map<Character, Character> map = new HashMap<Character, Character>();
    static {
        map.put('A','a');
        map.put('B','b');
        map.put('C','c');
        map.put('D','d');
        map.put('E','e');
        map.put('F','f');
        map.put('G','g');
        map.put('H','h');
        map.put('I','i');
        map.put('J','g');
        map.put('K','k');
        map.put('L','l');
        map.put('M','m');
        map.put('N','n');
        map.put('O','o');
        map.put('P','p');
        map.put('Q','q');
        map.put('R','r');
        map.put('S','s');
        map.put('T','t');
        map.put('U','u');
        map.put('V','v');
        map.put('W','w');
        map.put('X','x');
        map.put('Y','y');
        map.put('Z','z');
    } 
    public String toLowerCase(String s) {
        
        char[] arr = s.toCharArray();
        
        for(int i = 0, len = arr.length; i < len; i++)
           if(map.containsKey(arr[i]))
               arr[i] = map.get(arr[i]);
        
        return new String(arr); 
    }
}

解法2

不用map, 而是计算.

class Solution {
    public String toLowerCase(String s) {
        char[] arr = s.toCharArray();
        int gap = 'A' - 'a';
        for(int i = 0, len = arr.length; i < len; i++){
            if('A' <= arr[i] && arr[i] <= 'Z')
               arr[i] = (char)(arr[i] - gap);
        }
        return new String(arr); 
    }
}