首页 > 试题广场 >

最长公共前缀

[编程题]最长公共前缀
  • 热度指数:315 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
示例1

输入

["hello","hi","hey"]

输出

"h"
    string longestCommonPrefix(string* strs, int strsLen)
    {
        if(strsLen == 0) return "";
        int rows = strsLen;
        int cols = strs[0].size();
        for(int i  = 0;i < cols;i++)
        {
            char firstChar = strs[0][i];
            for(int j = 1;j < rows;j++)
            {
                if(firstChar != strs[j][i])
                {
                    return strs[0].substr(0,i);
                }
            }
        }
        return strs[0];
    }
发表于 2023-01-17 11:04:04 回复(0)
import java.util.*;


public class Solution {
    public String longestCommonPrefix (String[] strs) {
        int length = strs.length;
         if(length == 0) 
            return "";
        String ans = strs[0];
        for(int i =1;i<length;i++) {
            int j=0;
            for(;j<ans.length() && j < strs[i].length();j++) {
                if(ans.charAt(j) != strs[i].charAt(j))
                    break;
            }
            ans = ans.substring(0, j);
            if(ans.equals("")){return ans;}
        }
        return ans;
    }
}
发表于 2022-09-14 20:01:15 回复(0)
import java.util.*;


public class Solution {
    public String longestCommonPrefix (String[] strs) {
        int length = strs.length;
         if(length == 0) 
            return "";
        String ans = strs[0];
        for(int i =1;i<length;i++) {
            int j=0;
            for(;j<ans.length() && j < strs[i].length();j++) {
                if(ans.charAt(j) != strs[i].charAt(j))
                    break;
            }
            ans = ans.substring(0, j);
            if(ans.equals("")){return ans;}
        }
        return ans;
    }
}

发表于 2021-03-23 21:24:15 回复(0)
力扣有原题
class Solution {
public:
    /**
     * 
     * @param strs string字符串一维数组 
     * @param strsLen int strs数组长度
     * @return string字符串
     */
    string longestCommonPrefix(string* strs, int strsLen) {
        // write code here
        //string ret="";
        if(!strsLen)    {return "";}
        string temp = strs[0];
        for(int i=1;i<strsLen;i++)
        {
            int j=0;
            for(j ;j<temp.size()&&j<strs[i].size();j++)
            {
                if(j==0&&temp[j]!=strs[i][j])    {return "";}
                if(temp[j]!=strs[i][j])    {break;}
            }
            temp = temp.substr(0, j);
        }
        return temp;
        
    }
};

发表于 2020-12-25 21:55:38 回复(0)