菜鸟的代码:
import java.util.*;
import java.util.regex.*;
import java.text.*;
import java.math.*;
public class EllysNewNickname
{
public int getLength(String nickname)
{
int i,count;
count=1;
for(i=1;i<nickname.length();i++){
if(!isVowel(nickname.charAt(i)))
count++;
else if(isVowel(nickname.charAt(i))&&!isVowel(nickname.charAt(i-1)))
count++;
}
return count;
}
private boolean isVowel(char ch){
switch(ch){
case 'a':
case 'o':
case 'u':
case 'i':
case 'e':
case 'y':
return true;
default:
}
return false;
}
}
//Powered by KawigiEdit 2.1.4 (beta) modified by pivanof!
大神的代码:
public class EllysNewNickname { public int getLength(String nickname) { return nickname.replaceAll("[aiueoy]+", "a").length(); } }
分析:
算法:数个数,一堆元音算一个
比较:
1.大神的正则表达式用得出神入化啊!
2.我找了一个规律,然后在那里傻傻地数。
总结:
差距在这里体现(不计时间效率,代码行数差看起来是那么的粗目惊心),厚积薄发啊。学习了。
另外:我和大神的区别在于,和排序一样,他也改变了原数据。看来对原数据的适当修改,对算法的效率却可以获得指数倍的提高。