[LeetCode]14. Longest Common Prefix最长公共前缀
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.
求几个字符串的公共前缀,两种方法
(1)暴力
利用两层循环,先取出第一个字符串的第i个字符,然后比较s[1]-s[n]的第i个字符是否相等
public class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) return "";
        String res ="";
        for (int i = 0; i < strs[0].length(); i++) {
            char c = strs[0].charAt(i);
            for (int j = 1; j < strs.length; j++) {
                if (i >= strs[j].length() || strs[j].charAt(i) != c) {
                    return res;
                }
            }
            res =res+c;
        }
        return res;
    }
}
(2)排序后比较首尾
字符串比较的结果,按照首个不同字符的大小排序,比如ab就排在ac的前面
["flower","flow","flight"]比较的结果是[flight,flow,flower],我们统计首尾,fl是最长前缀
["dog","racecar","car"]比较的结果是[car,dog,racecar]
根据这个特性,假如存在最长公共前缀,s[0]和s[n]之间的最长公共前缀就是我们要求的结果,因为排序结果是按照第一个非公共字符开始的
这里我们把过程简化到只要比较首尾字符,而不用比较所有的
class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) return "";
        Arrays.sort(strs);
        int i = 0, len = Math.min(strs[0].length(), strs[strs.length - 1].length());
        while (i < len && strs[0].charAt(i) == strs[strs.length - 1].charAt(i)) i++;
        return strs[0].substring(0, i);
    }
}
[LeetCode]14. Longest Common Prefix最长公共前缀的更多相关文章
- [leetcode]14. Longest Common Prefix 最长公共前缀
		
Write a function to find the longest common prefix string amongst an array of strings. If there is n ...
 - 【LeetCode】14. Longest Common Prefix 最长公共前缀
		
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:prefix, 公共前缀,题解,leetcode, 力扣 ...
 - Leetcode No.14 Longest Common Prefix最长公共前缀(c++实现)
		
1. 题目 1.1 英文题目 Write a function to find the longest common prefix string amongst an array of strings ...
 - [LeetCode] 14. Longest Common Prefix 最长共同前缀
		
Write a function to find the longest common prefix string amongst an array of strings. If there is n ...
 - 【LeetCode】Longest Common Prefix(最长公共前缀)
		
这道题是LeetCode里的第14道题. 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["f ...
 - # Leetcode 14:Longest Common Prefix 最长公共前缀
		
公众号:爱写bug Write a function to find the longest common prefix string amongst an array of strings. If ...
 - LeetCode Longest Common Prefix 最长公共前缀
		
题意:给多个字符串,返回这些字符串的最长公共前缀. 思路:直接逐个统计同一个位置上的字符有多少种,如果只有1种,那么就是该位是相同的,进入下一位比较.否则终止比较,返回前缀.可能有一个字符串会比较短, ...
 - Longest Common Prefix -最长公共前缀
		
问题:链接 Write a function to find the longest common prefix string amongst an array of strings. 解答: 注意 ...
 - Leetcode  14.    Longest Common Prefix(水)
		
14. Longest Common Prefix Easy Write a function to find the longest common prefix string amongst an ...
 
随机推荐
- 总结一下vue里一些小技巧
			
官方里的我就不细说了,自个撸文档就成,下面是实践里常用的几个小技巧或者说是遇到的坑,若有错误望大家指正)1.当用a标签设置新窗口打开页面,设置url时,建议给href进行v-bind绑定,然后写相对路 ...
 - hdu1162(最小生成树 prim or kruscal模板)
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1162 意义:给出一些点,用线问使所有点直接或间接连通,需要多长: 思路:裸最小生成树: 法1: pri ...
 - 最短路【洛谷P1606】 [USACO07FEB]荷叶塘Lilypad Pond
			
P1606 [USACO07FEB]荷叶塘Lilypad Pond 为了让奶牛们娱乐和锻炼,农夫约翰建造了一个美丽的池塘.这个长方形的池子被分成了M行N列个方格(1≤M,N≤30).一些格子是坚固得令 ...
 - 通过IDEA及hadoop平台实现k-means聚类算法
			
由于实验室任务方向变更,本文不再更新~ 有段时间没有操作过,发现自己忘记一些步骤了,这篇文章会记录相关步骤,并随时进行补充修改. 1 基础步骤,即相关环境部署及数据准备 数据文件类型为.csv文件,e ...
 - JavaScript小技巧随笔
			
1. 在用||做条件判断时,如果情况较多,我们可以考虑是否能够用Array.includes()方法代替 var conditionArray = [ test1, test2, test3 ]; i ...
 - 如何从GAC中复制DLL文件
			
运行执行:c:\Windows\assembly\gac_msil
 - 金融量化之tushare模块的使用
			
一.TuShare简介和环境安装 TuShare是一个著名的免费.开源的python财经数据接口包.其官网主页为:TuShare -财经数据接口包.该接口包如今提供了大量的金融数据,涵盖了股票.基本面 ...
 - Linux进程控制理论及几种常见进程间通信机制
			
1. Linux进程控制理论 ① 进程是一个具有一定独立功能的程序的一次运行活动(动态性.并发性.独立性.异步性). 进程的四要素: (1)有一段程序供其执行(不一定是一个进程所专有的),就像一场戏必 ...
 - SvcUtil.exe导入WCF
			
1.SvcUtil.exe路径 vs2012.2013为C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin 2.添加外部工具 vs-工具-- ...
 - KS光盘制作 for rhel6.5 and rhel7.2
			
############################## RHEL6.5 KS光盘制作--1.复制光盘到本地mkdir -p /opt/rhel6mount /dev/cdrom /mediacp ...