欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

LeetCode——最长公共前缀

程序员文章站 2022-04-15 23:23:25
LeetCode——最长公共前缀题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题注意事项:要预防空指针异常solution代码:package LeetCode.longestCommonPrefix...

LeetCode——最长公共前缀

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

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

示例 1:

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

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

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

解题注意事项:要预防空指针异常

solution代码:

package LeetCode.longestCommonPrefix;

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

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

示例 1:

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

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

所有输入只包含小写字母 a-z 。
 */
public class longestCommonPrefixSolution {
    public static String solution(String[] strs){
        String longestString = "";//把最长的共同前缀存放在longestString
        int n = strs.length;//记录字符串数组的长度
        if(n == 0){//如果字符串数组为空,直接返回
            return longestString;
        }
        int min = strs[0].length();//记录字符串数组中最短的字符串的长度
        for (int i = 0; i < n; i++) {
            if(strs[i].length() < min){
                min = strs[i].length();
            }
        }
Lable:  for (int i = 0; i < min; i++) {//每一位
            for (int j = 0; j < n - 1; j++) {//遍历每一个字符串
                if(strs[j].charAt(i) != strs[j + 1].charAt(i)){
                    break Lable;//当有不相等的情况直接跳出整个循环
                }
            }
            longestString += strs[0].charAt(i);//当每个字符串中的这个位置的字符都相等,则更新longestString
        }
        return longestString;
    }
}

main函数代码:

package LeetCode.longestCommonPrefix;

import java.util.Scanner;

public class longestCommonPrefixMain {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("输入字符串个数:");
        int n = scan.nextInt();
        String[] strs = new String[n];
        System.out.println("输入字符串:");
        for (int i = 0; i < n; i++) {
            strs[i] = scan.next();
        }
        System.out.println("最长公共前缀:" + longestCommonPrefixSolution.solution(strs));
    }
}

测试用例测试结果:
LeetCode——最长公共前缀
LeetCode——最长公共前缀
LeetCode测试结果:
LeetCode——最长公共前缀

本文地址:https://blog.csdn.net/weixin_45295612/article/details/107354794