Switcheroo【难度:1级】:
答案1:
public class Kata
{
public static string Switcheroo(string x)
{
return x.Replace("a","d").Replace("b","a").Replace("d","b");
}
}
答案2:
public class Kata
{
public static string Switcheroo(string x)
{
return x.Replace('a','d')
.Replace('b','a')
.Replace('d','b');
}
}
答案3:
using System;
using System.Linq;
public class Kata
{
public static string Switcheroo(string x)
{
var s = x.Select(c=> c == 'a' ? 'b' : (c=='b' ? 'a' : c)).ToArray();
return new String(s);
}
}
答案4:
public class Kata
{
public static string Switcheroo(string x)
{
var letters = x.ToCharArray();
for (int i = 0; i < letters.Length; i++)
{
if (letters[i] == 'a' )
letters[i] = 'b';
else if (letters[i] == 'b')
letters[i] = 'a';
}
return new string(letters);
}
}
答案5:
public class Kata
{
public static string Switcheroo(string x)
{
var charArray = x.ToCharArray();
for(int i = 0; i < charArray.Length; i++)
{
if(charArray[i] == 'a')
charArray[i] = 'b';
else if(charArray[i] == 'b')
charArray[i] = 'a';
}
return new string(charArray);
}
}
答案6:
using System.Linq;
public class Kata
{
public static string Switcheroo(string x)
{
return x.Replace("a","B").Replace("b","a").ToLower();
}
}
答案7:
using System.Linq;
public class Kata
{
public static string Switcheroo(string x)
{
return string.Concat(x.Select(c => c == 'a' ? 'b': c == 'b'? 'a' : c));
}
}
答案8:
using System.Text;
public class Kata
{
public static string Switcheroo(string x)
{
// return x.Replace('a', '∞').Replace('b', 'a').Replace('∞', 'b'); One liner seems about 100 ms slower for these test cases :)
StringBuilder result = new StringBuilder();
foreach (char c in x) { result.Append(c == 'a' ? 'b' : c == 'b' ? 'a' : c); }
return result.ToString();
}
}
答案9:
public class Kata
{
public static string Switcheroo(string x)
{
return x.Replace('a','e').Replace('b','a').Replace('e','b');
}
}
答案10:
using System;
public class Kata
{
public static string Switcheroo(string x)
{
var result = "";
foreach (var val in x)
{
if (val == 'a')
{
result += val.ToString().Replace("a", "b");
}
if (val == 'b')
{
result += val.ToString().Replace("b", "a");
}
if (val != 'a' && val != 'b')
{
result += val.ToString();
}
}
return result;
}
}
答案11:
public class Kata
{
public static string Switcheroo(string x)
{
string ans = "";
foreach(char letter in x)
{
if(letter == 'a')
{
ans += 'b';
}
else if(letter == 'b')
{
ans += 'a';
}
else
{
ans += letter;
}
}
return ans;
}
}