代码改变世界

Compare Version Numbers

2015-03-06 14:44  笨笨的老兔子  阅读(220)  评论(0编辑  收藏  举报

版本号比较

注意点

  • 1.0 < 1.10
  • 1.1.1 < 1.1.2
  • 1.0 == 1

    思路:利用stringstream和getline结合,按照.为分隔符取出每一部分,转换成Int进行比较

    1. class Solution {
    2. public:
    3. int compareVersion(string version1, string version2) {
    4. stringstream streamVer1(version1);
    5. stringstream streamVer2(version2);
    6. string strVer1, strVer2;
    7. while (!streamVer1.eof() || !streamVer2.eof())
    8. {
    9. int iVer1(0), iVer2(0);
    10. if (!streamVer1.eof())
    11. {
    12. getline(streamVer1, strVer1, '.');
    13. iVer1 = stoi(strVer1);
    14. }
    15. if (!streamVer2.eof())
    16. {
    17. getline(streamVer2, strVer2, '.');
    18. iVer2 = stoi(strVer2);
    19. }
    20. if (iVer1 > iVer2)
    21. {
    22. return 1;
    23. }
    24. if (iVer1 < iVer2)
    25. {
    26. return -1;
    27. }
    28. }
    29. return 0;
    30. }
    31. };