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

谁借莪1个温暖的怀抱¢ 2024-04-20 08:35 87阅读 0赞

题目描述:

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pvY2tMaXU_size_16_color_FFFFFF_t_70

算法解析:

输入的是一个字符串数组,需要分析的是字符串,既然是所有元素的公共前缀,那么必然是从元素开头开始,所以我们用遍历元素的方法:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pvY2tMaXU_size_16_color_FFFFFF_t_70 1

前面我们已经讲过了indexOf()和substring()方法,所以我们运用这两个方法就能解决问题

程序

  1. class Solution {
  2. public String longestCommonPrefix(String[] strs) {
  3. if(strs.length==0) return ""; //首先字符串不能为空
  4. String p = strs[0];//取出第一个字符串,用于遍历
  5. for(int i=1;i<strs.length;i++){
  6. //从第二个元素开始进行遍历
  7. while(strs[i].indexOf(p) != 0){
  8. /**strs[i].indexOf(p)执行元素的遍历和匹配,也就是
  9. *一次减少一个元素,如果p剩余的元素完全能找到则跳出
  10. *最后就是如果全都没有,那么就返回一个空值
  11. */
  12. p = p.substring(0,p.length()-1);
  13. if(p.isEmpty()) return "";
  14. }
  15. }
  16. return p;
  17. }
  18. }

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pvY2tMaXU_size_16_color_FFFFFF_t_70 2

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pvY2tMaXU_size_16_color_FFFFFF_t_70 3

发表评论

表情:
评论列表 (有 0 条评论,87人围观)

还没有评论,来说两句吧...

相关阅读