美文网首页
自己构建cmp算子

自己构建cmp算子

作者: Songger | 来源:发表于2019-10-02 00:01 被阅读0次
    1. Largest Number
    class Solution {
    public:
        string largestNumber(vector<int>& nums) {
            vector<string> numstr;
            for (int n : nums) {
                numstr.push_back(to_string(n));
            }
            sort(numstr.begin(), numstr.end(), [this](string lhs, string rhs) { return cmpf(lhs, rhs); });
            string res = accumulate(numstr.begin(), numstr.end(), string(""));
            return res.find_first_not_of('0') == string::npos ? "0" : res;
        }
    private:
        bool cmpf(string lhs, string rhs) {
            if (lhs.length() == rhs.length()) {
                 return lhs > rhs;
             }
             int m = lhs.length(), n = rhs.length();
             int cmp = memcmp(lhs.data(), rhs.data(), min(m, n));
             if (cmp != 0) {
                 return cmp > 0;
             }
             return m < n ? cmpf(lhs, rhs.substr(m)) : cmpf(lhs.substr(n), rhs);
        }
    };
    

    相关文章

      网友评论

          本文标题:自己构建cmp算子

          本文链接:https://www.haomeiwen.com/subject/cnleyctx.html