问题描述:给你两个字符串,找出这两个字符串中,最长的非公共子序列的长度。
思路:仔细想想,发现这个题目就是个逗。如果a,b长度不相等,那么最长非公共子序列肯定是a,b中最长的那个。a,b长度相等,如果a,b两个字符串不相同,就是a,b的长度。如果相等,就是-1。再加上些空串判断,解决问题。
原答案:
public int findLUSlength(String a, String b) {
int length1=a.length();
int length2=b.length();
if(length1==0&&length2!=0)
return length2;
if(length2==0&&length1!=0)
return length1;
if(length2==0&&length1==0)
return -1;
if(length1>length2){
return length1;
}else if(length2>length1){
return length2;
}else if(a.equals(b))
return -1;
else
return length1;
}
最佳答案:
public int findLUSlength(String a, String b) {
return a.equals(b)?-1:Math.max(a.length(),b.length());
}
简洁了不是一星半点。