LeetCode 7最长公共前缀
Posted tefuir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 7最长公共前缀相关的知识,希望对你有一定的参考价值。
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
思路:
要求最长的公共前缀,就是求字符串数组所有字符串前面相同的部分。
创建一个新函数来比较两个字符串前面相同的长度。
通过比较字符串0和剩余字符串的公共前缀,选出最小的长度即为最长公共前缀。
class Solution { public String longestCommonPrefix(String[] strs) { if (strs.length==0)return ""; if (strs.length==1)return strs[0]; int sameCharNum=0; Set<Integer> set=new HashSet<>(); for (int i = 1; i < strs.length; i++) { sameCharNum = longestNum(strs[0], strs[i]); set.add(sameCharNum); } int minNum=Integer.MAX_VALUE; for (int i:set){ if(minNum>i){ minNum=i; } } return strs[0].substring(0,minNum); } public int longestNum(String s1,String s2){ int sameCharNum=0; for (int i = 0; i<s1.length()&&i<s2.length(); i++) { if (s1.charAt(i)==s2.charAt(i)) { sameCharNum++; }else return sameCharNum; } return sameCharNum; } }
以上是关于LeetCode 7最长公共前缀的主要内容,如果未能解决你的问题,请参考以下文章