Leetcode_Compare Version Numbers
来源:互联网 发布:在线矩阵计算器 编辑:程序博客网 时间:2024/06/01 08:17
#include <iostream>#include <vector>#include <string>using namespace std;class Solution {public: int compareVersion(string version1, string version2) {vector<int> v1;vector<int> v2;int p=0;/*方法一:OK*//*for(int i=0;i<version1.size();++i){if(version1[i]=='.'){string str(version1.begin()+p,version1.begin()+i);v1.push_back(stoi(str));p=i+1;}}string str1(version1.begin()+p,version1.end());v1.push_back(stoi(str1));p=0;for(int i=0;i<version2.size();++i){if(version2[i]=='.'){string str(version2.begin()+p,version2.begin()+i);v2.push_back(stoi(str));p=i+1;}}string str2(version2.begin()+p,version2.end());v2.push_back(stoi(str2));*//*方法二:NO *//*for(int i=0;i<version1.size();++i){if(version1[i]=='.'||i==version1.size()-1)//这样不可以,当最后一个字符不能复制进去{string str(version1.begin()+p,version1.begin()+i);v1.push_back(stoi(str));p=i+1;}}p=0;for(int i=0;i<version2.size();++i){if(version2[i]=='.'||i==version2.size()-1){string str(version2.begin()+p,version2.begin()+i);v2.push_back(stoi(str));p=i+1;}}*//*方法三:OK */p=0;for(int i=0;i<version1.size();++i){char a[64];if(version1[i]=='.'){memcpy(a,&version1[p],i-p);//没有结束符a[i-p]='\0';//非常重要v1.push_back(atoi(a));p=i+1;}}string str1(version1.begin()+p,version1.end());v1.push_back(stoi(str1));p=0;for(int i=0;i<version2.size();++i){char a[64];if(version2[i]=='.'){memcpy(a,&version2[p],i-p);//没有结束符a[i-p]='\0';//非常重要v2.push_back(atoi(a));p=i+1;}}string str2(version2.begin()+p,version2.end());v2.push_back(stoi(str1));/*int len1=v1.size();int len2=v2.size();if(len2<len1) return -1*compareVersion(version2, version1);int i=0;while(i<len1 && v1[i]==v2[i]) i++;if(i==len1){//str1和str2前len1位都相等,则看看str2后面的len2-len1位是否都为0即可判断它们的大小int j=len2-1;while(j >= len1){ if(v2[j--]!=0) return -1;}return 0;}else{ //str1和str2前len1位不都相等,直接判断第i位if(v1[i]<v2[i]) return -1; else return 1;}*/int i;for( i=0;i<v1.size()&&i<v2.size();++i){if(v1[i]>v2[i])return 1;if(v1[i]<v2[i])return -1;}if(i>=v1.size()&&i<v2.size())//当长度不相同而且前面全部相同的情况下,看较长的后面时候有大于0的出现{for(i=v1.size();i<v2.size();++i){if(v2[i]>0)return -1;}}else if(i>=v2.size()&&i<v1.size()){for(i=v2.size();i<v1.size();++i){if(v1[i]>0)return 1;}}return 0; }};int main(){string v1,v2;Solution S;cin>>v1>>v2;cout<<S.compareVersion(v1,v2);return 0;}
0 0
- Leetcode_Compare Version Numbers
- leetcode_Compare Version Numbers
- LeetCode_Compare Version Numbers
- Leetcode Compare Version Numbers
- Compare Version Numbers
- [leetcode] Compare Version Numbers
- Compare Version Numbers
- Compare Version Numbers
- [leetcode] Compare Version Numbers
- Compare Version Numbers
- Leetcode: Compare Version Numbers
- 【Leetcode】:Compare Version Numbers
- Compare Version Numbers (Java)
- 165 Compare Version Numbers
- leetcode:Compare Version Numbers
- [LeetCode]Compare Version Numbers
- [leetCode] Compare Version Numbers
- [leetcode] Compare Version Numbers
- 黑马程序员:Java基础语法---学习笔记
- Java 语言中的IO系统
- A+B
- VTK基础概念
- Android组件简记
- Leetcode_Compare Version Numbers
- 求职实习生面试问题
- 非软网络www.2ubu.com
- poj1088
- YT14-HDU-圆桌会议
- Windows下 maven3.0.4的安装步骤+maven配置本地仓库
- 从硬盘安装Windows 7的方法汇总
- 【Servlet笔记】Servlet的转发(其他servlet、静态页面、JSP)
- 写给自己的北漂生存之毕业回顾