//题目说不会超界,其实会 #include<cstring> class Solution { public: int compare(string version1, string version2) { //只需要比较几个点号 //考虑特殊情况,万一有只有一个点的 long long prat1 ; long long prat2; int i = 0; int j = 0; int n1 = version1.size(); int n2 = version2.size(); while (i < n1 || j < n2 ) { if (i < n1) { while (version1[i] == '0') i++; while (version1[i] != '.'&& i < n1) { prat1 = prat1 * 10 + (version1[i] - '0') ; i++; } if(version1[i] == '.')i++; } if (j < n2) { while (version2[j] == '0') j++; while (version2[j] != '.'&& j < n2) { prat2 = prat2 * 10 + (version2[j] - '0') ; j++; } if(version2[j] == '.') j++; } if (prat1 > prat2) return 1; else if (prat2> prat1) return -1; prat1 = 0; prat2 = 0; } return 0; } };