位运算处理字符大小写转换 - 关联Leetcode 709. 转成小写字母

大写小写小写大写 : 字符 ^= 32;

大写小写小写小写 : 字符 |= 32;

小写大写大写大写 : 字符 &= -33;

题目

实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。

示例 1:

输入: "Hello"
输出: "hello"
示例 2:

输入: "here"
输出: "here"
示例 3:

输入: "LOVELY"
输出: "lovely"

题解

一 ascii处理

class Solution {
public:
    string toLowerCase(string str) {
      string res = "";
      for(int i = 0; i < str.size(); i ++){
        if(str[i] <= 'Z' && str[i] >= 'A') str[i] += 32;
        res += str[i];
      }
      return res;
    }
};

二 位运算处理

class Solution {
public:
    string toLowerCase(string str) {
        for(auto &i : str){
            i |= 32;
        }
        return str; 
    }
};
posted @ 2020-08-03 15:10  CoderZjz  阅读(330)  评论(0编辑  收藏  举报