题目地址:https://leetcode-cn.com/problems/to-lower-case/
本来做完前面五道题就结束了,但是leetcode给我的又想发了周精彩推荐,一看很简单,就顺手刷了。
给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。
示例 1:
输入:s = "Hello"
输出:"hello"
示例 2:
输入:s = "here"
输出:"here"
示例 3:
输入:s = "LOVELY"
输出:"lovely"
提示:
1 <= s.length <= 100
s 由 ASCII 字符集中的可打印字符组成
这道题的思路就是大写转小写,且字符串中只会有字母,返回纯小写,相当于重写String.toLowerCase
一、爆破法
我们的爆破法也很简单,判断是否为'A'-'Z',是的话就+32('A'-'a'=32),以此类推。
执行结果如下:
114 / 114 个通过测试用例
状态:通过
执行用时: 0 ms
内存消耗: 36.6 MB
public String toLowerCaseMe(String s) {
char[] ans = s.toCharArray();
for (int i = 0; i < ans.length; i++) {
if(notLower(ans[i])) ans[i] = (char)(ans[i] + 32);
}
return new String(ans);
}
public boolean notLower(char c){
// 'A' = 65 'Z' = 90
return c < 91 && c > 64;
}
虽然时间是0ms 100%,但是内存还不到10%,很不理想。所以我们还是老规矩,评论区见
。。。。。。
但是评论区基本答案也跟我的结果差不多,有的甚至用了Character的api也没有比我高。
那么最后贴出最牛逼的答案
执行结果如下:
114 / 114 个通过测试用例
状态:通过
执行用时: 1 ms
内存消耗: 36.6 MB
public String toLowerCase(String str) {
return str.toLowerCase();
}
虽然不厉害但是人家还是一行代码解决了啊[手动滑稽].jpg
这里我的时间和空间都比他好,说明我牛逼过Lee Boynton, Arthur van Hoff, Martin Buchholz, Ulf Zibis以上几位大佬,听懂掌声。[再次滑稽].jpg