博主并没有什么算法基础,所以写的不好,勿喷,抛砖引玉,欢迎交流,感谢。
//编写一个函数来查找字符串数组中的最长公共前缀。
// 如果不存在公共前缀,返回空字符串 ""。
// 示例 1:
// 输入: ["flower","flow","flight"]
//输出: "fl"
// 示例 2:
// 输入: ["dog","racecar","car"]
//输出: ""
//解释: 输入不存在公共前缀。
// 说明:
// 所有输入只包含小写字母 a-z 。
// Related Topics 字符串
// 👍 1253 👎 0
package com.zqh.leetcode.editor.cn;
//Java:最长公共前缀
public class P14LongestCommonPrefix {
public static void main(String[] args) {
Solution solution = new P14LongestCommonPrefix().new Solution();
System.out.println(solution.longestCommonPrefix(new String[]{"dog", "racecar", "car"}));
System.out.println(solution.longestCommonPrefix(new String[]{"flower", "flow", "flight"}));
// TO TEST
}
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public String longestCommonPrefix(String[] strs) {
if (0 == strs.length) {
return "";
}
StringBuilder stringBuilder = new StringBuilder();
String a = "";
for (String str : strs[0].split("")) {
// 累加前缀
String key = stringBuilder.append(str).toString();
for (int j = 1; j < strs.length; j++) {
//判断前缀是否符合,一旦开始不符合就退出
if (!strs[j].startsWith(key)) {
return a;
}
}
//符合,继续覆盖
a = key;
}
return a;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}