Leetcode 14 Longest Common Prefix

    xiaoxiao2022-06-23  19

    题目要求:

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

    ----------------------------------------------------------------------------------------------------------------

    题目说明很简单,就是找出一个字符串数组的最长公共前缀

    首先,如果字符串数组strs包含0个字符串,则返回空串“”;若只包含1个字符串,则返回自己;

    然后,对字符串数字进行排序,自定义比较函数mycompare,将最短的字符串放在前面;

    遍历字符串数组中的每一个字符串,比较当前字符串(0,i)子串是否和strs[0]的(0,i)子串相等,如果该数组所有字符串(0,i)子串都相等,则保存该子串并返回,如果不等,则将i递减,循环;

    代码如下:

    bool mycompare(string a, string b) { if(a < b) return true; return false; } class Solution { public: string longestCommonPrefix(vector<string>& strs) { if(strs.size() == 0) return ""; if(strs.size() == 1) return strs[0]; //对数组进行排序 sort(strs.begin(), strs.end(), mycompare); int flag = 0; string result = ""; for(int i = strs[0].length(); i > 0; i--) { string s = strs[0].substr(0, i); for(int j = 1; j < strs.size(); j++) { int len = s.length(); string temp = strs[j].substr(0, len); if(temp == s) { flag = 1; continue; } else { flag = 0; break; } } if(flag == 1) { result = s; return result; } } return result; } };

    转载请注明原文地址: https://ju.6miu.com/read-1123205.html

    最新回复(0)