Longest Common Prefix

来源:互联网 发布:windows 10 蓝牙 丢失 编辑:程序博客网 时间:2024/05/29 03:17

标签(空格分隔): leetcode 简单编程


Longest Common Prefix:

题目描述

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

题目解答

(一)

拿出第一个字符串,从其第0个位置开始,看能和其余的字符串均连续匹配的字符有几个:

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {        if (strs.empty()) {            return "";        }        string& fstStr = strs[0];        string::size_type i = 0;        for (; i < fstStr.size(); ++i) {            bool isBreak = false;            for (vector<string>::size_type j = 1; j < strs.size(); ++j) {                if (strs[j].size() <= i || strs[j][i] != fstStr[i]) {                   isBreak = true;                   break;                }            }            if (isBreak) {                break;            }        }        return fstStr.substr(0, i);    }};

(二)

循环嵌套时使用goto直接跳出

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {        if (strs.empty()) {            return "";        }        string& fstStr = strs[0];        string::size_type i = 0;        for (; i < fstStr.size(); ++i) {            for (vector<string>::size_type j = 1; j < strs.size(); ++j) {                if (strs[j].size() <= i || strs[j][i] != fstStr[i]) {                   goto RetLabel;                }            }        }    RetLabel:        return fstStr.substr(0, i);    }};
0 0
原创粉丝点击