字符串的算法问题,比较简单,兄弟比较愚笨不会。输入两个字符传数组比较,列出连续项最多的。
例如:输入asdddd和asdifjadddd返回dddd
public char[] cmp(char[] a,char[] b)
{
..............
}
帮个忙,郁闷啊,当初数据结构没学好
例如:输入asdddd和asdifjadddd返回dddd
public char[] cmp(char[] a,char[] b)
{
..............
}
帮个忙,郁闷啊,当初数据结构没学好
如果匹配到“abcd”和“ddef”怎么办呢?要哪个?我试个string的
public String cmp(String a, String b)
{
if(-1!=b.indexOf(a)) return a;
else if(a.length()>1){
String temp=cmp(a.subString(1) ,b);
if(null!=temp) return temp;
else return cmp(a.subString(0,a.length()-1), b);
}else{ return null;}}
{
char a1=a[0];
int count1,count2;
for(int i=1;i<a.length;i++)
{
if(a1!==a[i])
{
count1=0;
a1=a[i]
}else count1++;
}
a1=b[0];
for(int i=1;i<b.length;i++)
{
if(a1!==b[i])
{
count2=0;
a1=b[i]
}else count2++;
}
if(count1>count2)
return a;
else
return b;
}
a和b根本就没拉上关系
public char[] charThan(char a[],char b[])
{
int start=0;
int end=0;
char temp=a[0];
int indexA=0;
int indexB=0;
for(int i=0;i<a.length;i++)
{
indexA=i;
for(int j=0;j<b.length;j++){
indexB=j;
if(a[index]=b[indexB]){//开始匹配
while(a[++indexA]==b[++indexB]){}
if((indexA-i)>(end-start)){//如果找到更大的匹配串
start=i; end=indexA;
}//if((indexA-i)>(end-start))
}//if(a[index]=b[j])
}//for(int j=0;j<b.length;j++)
}//for(int i=0;i<a.length;i++)
char ret[]=new char[end-start];
for(int i=start; i<end; i++) ret[i=start]=a[i];
return ret;
}//public char[] charThan(char a[],char b[])