博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java_最长公共前缀_LeetCode
阅读量:3961 次
发布时间:2019-05-24

本文共 1576 字,大约阅读时间需要 5 分钟。

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入:strs = ["flower","flow","flight"]

输出:"fl"
示例 2:

输入:strs = ["dog","racecar","car"]

输出:""
解释:输入不存在公共前缀。

解题思路:

       解决问题的思路有两种,第一个是纵向比对,一个是横向比对。

方法一:纵向比对

       以第一个单次为基准,每次取第一个单词的元素,与其他单词的相同位进行比较

方法二:横向比对

       每次进行两两比对,记录当前最长的公共前缀。之后依次比对当前最长公共前缀与下一个单词。如果当前最长公共前缀为0,则break,表明当前已经无最长公共前缀。

Java解决问题代码:

class Solution {    public String longestCommonPrefix(String[] strs) {        if(strs == null || strs.length == 0) {            return "";        }        /*纵向,以第一个单词为基准,依次判断以后单词的同一位        int len = strs[0].length();        int count = strs.length;        for(int i = 0; i < len; i++) {            char tmp = strs[0].charAt(i);//每次分别比对第一个单词的每一位            for(int j = 1; j < count; j++) {                if((i == strs[j].length()) || (strs[j].charAt(i) != tmp)) {//若以后单词长度短于第一个单词长度或者相同位单词不同                    return strs[0].substring(0, i);                }            }        }        return strs[0];        */        /*横向        int len = strs.length;        String ans = strs[0];        for(int i = 1; i < len; i++) {            ans = findLongestCommonPrefix(ans, strs[i]);            if(ans.length() == 0) {//前缀为0,表示此时没有公共前缀                break;            }        }        return ans;    }    public String findLongestCommonPrefix(String str1, String str2) {//依次两两比对单词的公共前缀        int length = Math.min(str1.length(), str2.length());        int index = 0;//index表示相同单词位的下标        while(index < length && str1.charAt(index) == str2.charAt(index)) {            index++;        }        return str1.substring(0, index);    }    */    }}

转载地址:http://gzgzi.baihongyu.com/

你可能感兴趣的文章
Canvas入门(一)
查看>>
一.JavaScript 基础
查看>>
7.ECMAScript 继承
查看>>
HTML DOM
查看>>
AJAX 基础
查看>>
JSON 基础
查看>>
J2EE监听器Listener接口大全[转]
查看>>
cookie、session、sessionid 与jsessionid[转]
查看>>
常见Oracle HINT的用法
查看>>
JAVA中各类CACHE机制实现的比较 [转]
查看>>
PL/SQL Developer技巧
查看>>
3-python之PyCharm如何新建项目
查看>>
15-python之while循环嵌套应用场景
查看>>
17-python之for循环
查看>>
18-python之while循环,for循环与else的配合
查看>>
19-python之字符串简单介绍
查看>>
20-python之切片详细介绍
查看>>
P24-c++类继承-01详细的例子演示继承的好处
查看>>
P8-c++对象和类-01默认构造函数详解
查看>>
P1-c++函数详解-01函数的默认参数
查看>>