zoukankan      html  css  js  c++  java
  • 最长的共同前缀

    我用的方法是,同时保存每个 string 的begin 迭代器,让他们一起移动,然后统一比较,若是不同,或其中有的已经到了 end() ,那么就返回。否则所有的迭代器共同前进一步。

    string longestCommonPrefix(vector<string>& strs) {
        if (strs.empty()){
            return string();
        }
        
        vector<string::iterator> its;
        for_each(strs.begin(), strs.end(), [&](string& s){its.push_back(s.begin());});
        const auto len = its.size();
        
        for (;;){
            const auto key = *its[0];
            for (size_t i = 0; i != len; ++i){
                if (its[i] == strs[i].end() || *its[i] != key){
                    return string(strs[i].begin(), its[i]);
                }
            }
            for_each(its.begin(), its.end(), [](string::iterator& it){++it;});
        }
    }
  • 相关阅读:
    原型与原型链
    数据类型与计算
    JavaScript实现版本号比较
    vue依赖
    vue
    面试经验
    第十一节课 课堂总结
    第十一次作业
    第十课课堂总结
    第十次作业
  • 原文地址:https://www.cnblogs.com/wuOverflow/p/4758268.html
Copyright © 2011-2022 走看看