leetcode-14最长公共前缀

题目

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

  1. 输入: ["flower","flow","flight"]
  2. 输出: "fl"

示例 2:

  1. 输入: ["dog","racecar","car"]
  2. 输出: ""
  3. 解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

idea:用第一个字符串的每一个字符去和其他的字符串的对应位置字符去比对,如果都相同 ,那么这个字符属于公共前缀;再判断下一个,直到不相同字符出现/有字符串结束,就结束比较。

算法:

如果数组只有一个元素,那么直接返回第一个字符串即可

如果数组元素多于一个,继续

计算字符串数组中最短字符串的长度(shortest)

遍历第一个元素(form 0 to shortest)->遍历更多没用,我们在找公共的元素

  内嵌遍历字符串数组

  如果存在对应位置的字符与第一个字符串的字符不同,直接结束,返回结果

如果对应位置字符都相同,那么将此字符连接到结果后面。

返回结果字符串。

  1. class Solution {
  2. public String longestCommonPrefix(String[] strs) {
  3. if(strs.length == 1)
  4. {
  5. return strs[0];
  6. }
  7.  
  8. String ans = "";
  9. if(strs.length > 1)
  10. {
  11. int i, j;
  12. boolean sameFlag;
  13. int shortest = strs[0].length();
  14. for(i=0; i<strs.length; i++)
  15. {
  16. if(strs[i].length() < shortest)
  17. {
  18. shortest = strs[i].length();
  19. }
  20. }
  21. for(i=0; i<shortest; i++)
  22. {
  23. sameFlag = true;
  24. char c1 = strs[0].charAt(i);
  25. for(j=1; j<strs.length; j++)
  26. {
  27. char c2 = strs[j].charAt(i);
  28. if(c1 != c2)
  29. {
  30. sameFlag = false;
  31. }
  32. }
  33.  
  34. if(sameFlag == true)
  35. {
  36. ans += strs[0].charAt(i);
  37. }
  38. else
  39. {
  40. break;
  41. }
  42. }
  43. }
  44. return ans;
  45. }
  46. }

leetcode-14最长公共前缀的更多相关文章

  1. LeetCode 14. 最长公共前缀(Longest Common Prefix)

    14. 最长公共前缀 14. Longest Common Prefix 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". Lee ...

  2. Java实现 LeetCode 14 最长公共前缀

    14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",&quo ...

  3. [LeetCode]14.最长公共前缀(Java)

    原题地址: longest-common-prefix 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:st ...

  4. python(leetcode)-14最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  5. leetcode 14 最长公共前缀

    描述: 给个字符串vector,求最长公共前缀. 解决: 直接取第一个字符串作为最长公共前缀,将其每个字符遍历过一次.设最长字符实际为k,共n个元素,则复杂度O(nk) string longestC ...

  6. LeetCode 14. 最长公共前缀(Longest Common Prefix)

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...

  7. LeetCode 14.最长公共前缀(Python3)

    题目: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow& ...

  8. LeetCode:最长公共前缀【14】

    LeetCode:最长公共前缀[14] 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flo ...

  9. 【Leetcode】【简单】【14最长公共前缀】【JavaScript】

    题目 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",& ...

  10. python刷LeetCode:14. 最长公共前缀

    难度等级:简单 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",& ...

随机推荐

  1. PHP计算连续签到天数以及累计签到天数

    代码如下: /** * 统计连续签到天数以及累计签到天数 * @param string $user_long_id 用户ID * @return array 一维数组 */ function sig ...

  2. 另类SQL拼接方法

    在编写SQL的时候经常需要对SQL进行拼接,拼接的方式就是直接String+处理,但这种情况有个不好的地方就是不能对SQL进行参数化处理.下面介绍一种就算基于String +的方式也可以进行SQL参数 ...

  3. HttpClientHelper

    using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System ...

  4. linux sar 命令详解(历史资源查看,如内存、CUP等等)

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...

  5. find命令高级参数

    find 命令参数大全  转自[https://www.cnblogs.com/yorkyang/p/6294894.html] Linux中find常见用法示例 ·find   path   -op ...

  6. MYSQL事务隔离级别详解附加实验

    参考: https://dev.mysql.com/doc/refman/5.7/en/set-transaction.html http://xm-king.iteye.com/blog/77072 ...

  7. Golang中的自动伸缩和自防御设计

    Raygun服务由许多活动组件构成,每个组件用于特定的任务.其中一个模块是用Golang编写的,负责对iOS崩溃报告进行处理.简而言之,它接受本机iOS崩溃报告,查找相关的dSYM文件,并生成开发者可 ...

  8. 让Python代码更快运行的 5 种方法

    不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和 ...

  9. MyBatis源码解析(七)——DataSource数据源模块之托管数据源

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6675700.html 1 回顾 之前介绍的非池型与池型数据源都是MyBatis自己定义的内 ...

  10. h5py快速入门指南

    h5py是Python语言用来操作HDF5的模块.下面的文章主要介绍h5py的快速入门指南,翻译自h5py的官方文档:http://docs.h5py.org/en/latest/quick.html ...