算法题 求最长公共前缀

题目来源力扣:

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:

输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:

所有输入只包含小写字母 a-z 。

我们采用横向判断来找到最长公共前缀:

先看第一个字符串,让其跟第二个字符串比较,找到最长公共前缀,此时用这个公共前缀去和第三个字符串比较,依次进行下去,最后找到我们要的答案。

看代码:
import java.util.*;

import java.util.Scanner;


import java.util.ArrayList;
import java.util.Collections;

public class M1 {

    public static void main(String[] args) {
    	
      String string[]= new String[]{"flow","flight","flower"};
      String string2=LOng(string);
      System.out.println(string2);
      
    }
    public static String LOng(String string[]) {
    	if(string.length==0)
    		return "";
    	String anString=string[0];
    	for(int i=1;i<string.length;i++) {
    		int j=0;
    		for(;j<anString.length()&&j<string[i].length();j++) {
    			if(anString.charAt(j)!=string[i].charAt(j))//实现字符串的每个字符两两比较
    				break;
    		}
    		anString=anString.substring(0, j);//一定注意这里,来实现ans的重新赋值
    		if(anString.equals(""))//这一步是实现判断若此时公共前缀为空,那么就不比再进行寻找了,直接返回就可以了
    			return anString;
    	}
    	return anString;
    }
}

你可能感兴趣的:(学习笔记,算法,java,算法,字符串)