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测试结果:
本文地址:https://blog.csdn.net/weixin_45295612/article/details/107354794
上一篇: Java基础知识总结Day1