位运算处理字符大小写转换 - 关联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;
}
};