1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | // C++0x: compile with g++ -std=c++0x <filename> #include <iostream> #include <string> #include <algorithm> #include <vector> int main() { std::vector<std::string> v = { "6465", "64" }; std::sort(v.begin(), v.end(), [](const std::string &lhs, const std::string &rhs) { auto lhsLen = lhs.size(); auto rhsLen = rhs.size(); auto longer = (lhsLen > rhsLen) ? lhsLen : rhsLen; for (auto i = 0; i < longer; ++i) { if (i < lhsLen && i < rhsLen) { if (lhs[i] != rhs[i]) return lhs[i] > rhs[i]; } else if (i < lhsLen) { // no more rhs if (lhs[i] != rhs[0]) return lhs[i] > rhs[0]; } else { // no more lhs if (rhs[i] != lhs[0]) return lhs[0] > rhs[i]; } } return true; }); for (size_t i = 0; i < v.size(); ++i) { std::cout << v[i] << ' '; } } |
Ly8gQysrMHg6IGNvbXBpbGUgd2l0aCBnKysgLXN0ZD1jKysweCA8ZmlsZW5hbWU+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KCmludCBtYWluKCkgewogIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2ID0gewogICAgIjY0NjUiLCAiNjQiCiAgfTsKICBzdGQ6OnNvcnQodi5iZWdpbigpLCB2LmVuZCgpLAogICAgICBbXShjb25zdCBzdGQ6OnN0cmluZyAmbGhzLCBjb25zdCBzdGQ6OnN0cmluZyAmcmhzKSB7CiAgICAgICAgYXV0byBsaHNMZW4gPSBsaHMuc2l6ZSgpOwogICAgICAgIGF1dG8gcmhzTGVuID0gcmhzLnNpemUoKTsKICAgICAgICBhdXRvIGxvbmdlciA9IChsaHNMZW4gPiByaHNMZW4pID8gbGhzTGVuIDogcmhzTGVuOwogICAgICAgIGZvciAoYXV0byBpID0gMDsgaSA8IGxvbmdlcjsgKytpKSB7CiAgICAgICAgICBpZiAoaSA8IGxoc0xlbiAmJiBpIDwgcmhzTGVuKSB7CiAgICAgICAgICAgIGlmIChsaHNbaV0gIT0gcmhzW2ldKSByZXR1cm4gbGhzW2ldID4gcmhzW2ldOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoaSA8IGxoc0xlbikgeyAvLyBubyBtb3JlIHJocwogICAgICAgICAgICBpZiAobGhzW2ldICE9IHJoc1swXSkgcmV0dXJuIGxoc1tpXSA+IHJoc1swXTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgLy8gbm8gbW9yZSBsaHMKICAgICAgICAgICAgaWYgKHJoc1tpXSAhPSBsaHNbMF0pIHJldHVybiBsaHNbMF0gPiByaHNbaV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9KTsKCiAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2LnNpemUoKTsgKytpKSB7CiAgICBzdGQ6OmNvdXQgPDwgdltpXSA8PCAnICc7CiAgfQp9
-
upload with new input
-
result: Success time: 0s memory: 2964 kB returned value: 0
64 6465


