当前位置:   article > 正文

Java每日一题——最长公共前缀_java 给你一个大小为n的字符串数组strs查找最长公共前缀

java 给你一个大小为n的字符串数组strs查找最长公共前缀

一、题目描述

给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。

数据范围: 0 \le n \le 50000≤n≤5000, 0 \le len(strs_i) \le 50000≤len(strsi​)≤5000

进阶:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)

示例1

输入:["abca","abc","abca","abc","abcc"]

返回值:"abc"

示例2

输入:["abc"]

返回值:"abc"

题目链接:

最长公共前缀_牛客题霸_牛客网

二、解题思路

 找出两个字符串的最长公共前缀,用找出的字符串再与下一个字符串找,最终得到的字符串即为字符串数组中的最长公共前缀。

三、代码

  1. import java.util.*;
  2. public class Solution {
  3. public String twoLLongestCommonPrefix (String str1,String str2){ //找出两个字符串的最长公共前缀
  4. int length=str1.length()>str2.length()?str2.length():str1.length(); //找出短的字符串长度
  5. StringBuilder sb=new StringBuilder();
  6. for(int i=0;i<length;i++){ //相同的提取出来,遇到不同的直接结束循环
  7. if(str1.charAt(i)==str2.charAt(i)){
  8. sb.append(str1.charAt(i));
  9. }else{
  10. break;
  11. }
  12. }
  13. String str=sb.toString();
  14. return str;
  15. }
  16. public String longestCommonPrefix (String[] strs) {
  17. if(strs.length==0){
  18. return "";
  19. }
  20. for(int i=0;i<strs.length-1;i++){
  21. String str=twoLLongestCommonPrefix(strs[i],strs[i+1]); //找出两个字符串的最长公共前缀
  22. strs[i+1]=str; //用找出的字符串再与下一个字符串找
  23. }
  24. return strs[strs.length-1];
  25. }
  26. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/727708
推荐阅读
相关标签
  

闽ICP备14008679号