无意中看到的迅雷招聘的面试题。 看了网上很多种实现。觉得都没啥新意,好久没写算法,自己弄个玩玩。
不知道性能是否要好些。虽然没测,但感觉应该还是会高些滴。。。
假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?
懒得用JAVA,反正C#实现效果一样。
public static void Main()
{
string s = removeChs("6sabcsssfsfs33", "ab3".ToCharArray());
}
public static string removeChs(string str, char[] chs)
{
StringBuilder rstr = new StringBuilder();
byte[] hs = new byte[256];
foreach (char c in chs)
hs[Convert.ToInt32(c)] = 1;
foreach (char c in str)
if (hs[Convert.ToInt32(c)] == 0)
rstr.Append(c);
return rstr.ToString();
}