leetcode14:Longest Common Prefix

leetcode14:Longest Common Prefix

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

循环的判断数组中每一个字符串在相同的下标是否有相同的值(当然还要加入相应的判断匹配终止的条件),这样遍可以找出最长的公共前缀

package leetcode;

public class leet14 {
	
	public String longestCommonPrefix(String[] strs){
		String str ="";//存储最长公共前缀
		int j = 0;
		int i;
		if(strs.length == 0){//判断字符串数组是否为空
			return "";
		}
		
		while(true){//外层循环
			//以第一个字符串为基准
			if(j >= strs[0].length())//判断第一个字符串是否达到最长,则匹配结束,返回
				return str;
			for(i = 1;i < strs.length;i++){//对字符串数组中的每一个字符串的相应的位置下标进行比较
				if(j >= strs[i].length()){//判断当前字符串是否达到最长,则匹配结束,返回
					return str;
				}
				if(strs[i].charAt(j) != strs[0].charAt(j)){//判断当前字符串的第j位是否与第一个字符串的j位相同,否则返回
					return  str;
				}
			}
			if(i == strs.length)//匹配完数组中最后一个字符串,将相同的元素添加入结果字符串中。
			{
				str = str+strs[0].charAt(j);
			}
				
			j++;//下标加1
		}
	}
	public static void main(String[] args) {
		
		leet14 lee = new leet14();
		String[] strs = {"abcef","abcd","abca","abc"};
		String comPrex = lee.longestCommonPrefix(strs);
		System.out.println(comPrex);
	}

}

鉴于水平有限,算法的实现也不一定是最优的,如有什么错误,还望批评指正

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值