经过一轮来不及准备的面试,我应该知道了自己几斤几两了,,, 奋发刷题,记录下自己的解题过程,以及一些遇到的需要注意的问题。
意向java方向,java还是在大一学的,大三重拾处处是坑。
上题:大意是要去掉email里面本地名里面的 “.” 和“+”后面的部分。
public static int numUniqueEmails(String[] emails) {
int num=0;
String str, tmp1, t;
for(int i=0; i<emails.length; i++)
{
str = emails[i];
emails[i] = str.substring(str.indexOf( "@"));//@后面的
tmp1 = str.replace(".", "");//去掉 。
if(tmp1.indexOf("+")>0)
emails[i] = tmp1.substring(0, tmp1.indexOf( "+")-1) + emails[i];
else
emails[i] = tmp1.substring(0, tmp1.indexOf( "@")) + emails[i];
}
for(int i=0; i<emails.length; i++)
for(int j=0; j<emails.length; j++)
if(emails[i].equals(emails[j]) && i!=j)
emails[j] = "";
for(int i=0; i<emails.length; i++)
if(emails[i]!="")
num++;
return num;
}
注意点:
String.replace() String.replaceAll() 两者不一样,后者是为正则表达式设立的,要注意特殊字符,比如+ 在后者要写成“\\+”转义一下。
emails[i].equals(emails[j]) 这里不能用==,两者地址不一样。