LeetCode算法入门- Longest Common Prefix -day13
- 题目描述:
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example 1:
Input: [“flower”,“flow”,“flight”]
Output: “fl”
Example 2:
Input: [“dog”,“racecar”,“car”]
Output: “”
Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.
-
思路分析:
题目的意思是给定一个字符串数组,找出数组中所有字符串最长的公共前缀。
解题思路:可以将数组中的第一个元素strs[0]当做最大的公共前缀,然后来一一判断其他数组中是否有此公共前缀,如果没有,就将strs[0]中的最后一个元素去掉继续判断。。。 -
code如下:
class Solution {public String longestCommonPrefix(String[] strs) {int len = strs.length;if(len == 0)return "";String prefixStr = strs[0];for(int i = 1; i < len; i++){//下面这个方法很关键,判断prefixStr是不是在strs[i]中下标为0的位置while(strs[i].indexOf(prefixStr) != 0){//将prefixStr最后面一个字符去掉prefixStr = prefixStr.substring(0, prefixStr.length() - 1);//如果为空,说明匹配失败if(prefixStr.length() == 0)return "";}}return prefixStr;}
}