LeetCode 014. Longest Common Prefix

xiaoxiao2021-02-27  324

问题

        Write a function to find the longest common prefix string amongst an array of strings.

分析

        求一个数组中,所有元算的最常公共前缀,获取数据中长度最短的元素,将这个元素的每一位,依次与数组中每个元素的每一位进行比较,当遇见不相等时,即刻终止

        对数组中的元素排序,这样以来只需要比较第一个元素和最后一个元素,就可以得到数组的最大公共前缀

解答

string longestCommonPrefix(vector<string>& strs) { string result = ""; if (strs.size() == 0) return result; int minLenIndex = 0; for (int i = 1; i < strs.size(); i++){ if (strs[i].length() < strs[minLenIndex].length()) minLenIndex = i; } int i = 0; for (i = 0; i < strs[minLenIndex].length(); i++){ int j = 0; for (j = 0; j < strs.size(); j++){ if (strs[j][i] != strs[minLenIndex][i]){ break; } } if (j < strs.size()){ break; } } result = strs[minLenIndex].substr(0, i); return result; } string longestCommonPrefix2(vector<string>& strs) { string result = ""; if (strs.size() == 0) return result; sort(strs.begin(), strs.end()); int i = 0; for (i = 0; i < strs[0].length(); i++){ if (strs[0][i] != strs[strs.size() - 1][i]){ break; } } result = strs[0].substr(0, i); return result; }
转载请注明原文地址: https://www.6miu.com/read-3593.html

最新回复(0)