击败60%
public static string ToLowerCase(string str)
{
return str.ToLowerInvariant();
}
ToLowerInvariant忽略了对语言文化的处理?,因此性能比ToUpper和ToLower要快得多。
很抱歉,上面的这种写法是我 第一次做这道题的时候写的,大家可以看看日期,很早了。
字符串拼接一下:
执行用时 : 124 ms, 在To Lower Case的C#提交中击败了96.88% 的用户
public class Solution {
public string ToLowerCase(string str) {
StringBuilder sb = new StringBuilder(str.Length);
foreach(var c in str){
if((int)c >= 65 && (int)c <= 90){
sb.Append((char)(c+32));
}
else{
sb.Append(c);
}
}
return sb.ToString();
}
}
c# using basic linq:
执行用时 : 136 ms, 在To Lower Case的C#提交中击败了76.56% 的用户
public class Solution {
public string ToLowerCase(string str)
{
return string.Join("",str.Select(s => ToLowerFastIf(s)));
}
public static char ToLowerFastIf(char c)
{
if (c >= 'A' && c <= 'Z')
{
return (char)(c + 32);
}
else
{
return c;
}
}
}
linq : 执行用时 : 132 ms, 在To Lower Case的C#提交中击败了82.03% 的用户
public class Solution {
public string ToLowerCase(string str) {
return string.Concat(str.Select(c => c >= 'A' && c <= 'Z' ? (char)(c + 32) : c));
}
}