1. 程式人生 > >最長公共字首 -LintCode

最長公共字首 -LintCode

給k個字串,求出他們的最長公共字首(LCP)
樣例
在 “ABCD” “ABEF” 和 “ACEF” 中, LCP 為 “A”
在 “ABCDEFG”, “ABCEFG”, “ABCEFA” 中, LCP 為 “ABC”

#ifndef C78_H
#define C78_H
#include<iostream>
#include<vector>
#include<string>
using namespace std;
class Solution {
public:
    /**
    * @param strs: A list of strings
    * @return: The longest common prefix
    */
string longestCommonPrefix(vector<string> &strs) { // write your code here if (strs.empty()) return ""; if (strs.size() == 1) return strs[0]; int pos = 0;//最長公共字首的個數 //對於strs[0][i],判斷strs中是否滿足strs[j][i]==strs[0][i] for (int
i = 0; i < strs[0].size(); ++i) { int num = 0; for (int j = 0; j < strs.size(); ++j) { if (j == 0) num = strs[j][i] - 'a'; if (i == strs[j].size() || strs[j][i] - 'a' != num) { return
strs[0].substr(0, pos); } } pos++; } return pos==0?"":strs[0].substr(0,pos); } }; #endif