14. Longest Common Prefix #String (Easy)

Problem:###

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

Solution:###

Assume the first string is the result. Compare it to all strings and limit the result while each comparison.

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if (strs.size() == 0) return "";
        
        string result = strs[0];
        
        for(int i = 1;i < strs.size();i++)
        {
            for(int j = 0;j < result.size();j++)
            {
                if(result[j] != strs[i][j])
                {
                    if(j == 0) 
                    {
                        result = "";
                        break;
                    }
                    result = result.substr(0, j);
                    break;
                }
            }
        }
        
        return result;
    }
};

LeetCode Discussion

Memo:###

The use of substr is s.substr(startposition,length)

#include <iostream>
#include <string>

int main ()
{
  std::string str="We think in generalities, but we live in details.";
                                           // (quoting Alfred N. Whitehead)

  std::string str2 = str.substr (3,5);     // "think"

  std::size_t pos = str.find("live");      // position of "live" in str

  std::string str3 = str.substr (pos);     // get from "live" to the end

  std::cout << str2 << ' ' << str3 << '\n';

  return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容