Write a function to find the longest common common string amongst an array of strings.

这个算法我是求的公共子序列,而不是公共前缀。提交到公共前缀的online不会通过。

public class Solution {
    public String longestCommonPrefix(String[] strs) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
    	if(strs==null||strs.length==0){
    		return "";
    	}
    	if(strs.length==1){
    		return strs[0];
    	}
    	String s=strs[0];
    	for (int i=1;i<strs.length;i++ ){
    		s=findTwo(s,strs[i]);
    		
    	}
        return s;
    }
    
    String findTwo(String s0,String s1){
    	if(s0==null||s1==null||s0==""||s1==""){
    		return "";
    	}
    	if(s0.charAt(0)==(s1.charAt(0))){
    		if (s0.length()==1||s1.length()==1){
    			return s0.substring(0,1);
    		}
    		return s0.charAt(0)+findTwo(s0.substring(1),s1.substring(1));
    	}
    	else {
    		
    		if(s0.length()==1||s1.length()==1){
    			if(s0.length()==s1.length()){
    				return "";
    			}
    			else 
    				return s0.length()>s1.length()? findTwo(s1,s0.substring(1)):findTwo(s0,s1.substring(1));
    		}
    		String ss0=findTwo(s0,s1.substring(1));
    		String ss1=findTwo(s0.substring(1),s1);
    		
    		int temp0=(ss0=="")?0:ss0.length();
    		int temp1=(ss1=="")?0:ss1.length();
    		
    		return temp0>temp1?ss0:ss1 ;
    	}

    }
    public  static void  main(String[] args){
    	Solution test=new Solution();
    	String[] strs={"afg","dafegee"};
    	System.out.println(test.longestCommonPrefix(strs));
    }
    
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值