8
# python中的列表可以直接比较,只要把输入的数字按照'.'分割后,换为整数列表即可。
num = input().split()
version1 = list(map(int, num[0].split(".")))
version2 = list(map(int, num[1].split(".")))
if version1
print(-1)
elif version1>version2:
print(1)
else:
print(0)
#print(version1, version2)
发表于 2019-07-04 11:09:50
回复(0)
2
//用c语言的scanf输入int判断更便捷;
#include
using namespace std;
int main(){
vector arr1,arr2;
int i=0,t;
while(1){
if(cin.peek()==' ')
break;
scanf("%d.",&t);
arr1.push_back(t);
}
while(1){
if(cin.peek()=='\n')
break;
scanf("%d.",&t);
arr2.push_back(t);
}
while(i!=arr1.size()&&i!=arr2.size()){
if(arr1[i]!=arr2[i]){
t=arr1[i]>arr2[i] ? 1:-1;
break;
}
i++;
}
if(i==arr1.size()||i==arr2.size()){
if(arr1.size()==arr2.size())
t=0;
else
t= arr1.size()>arr2.size() ? 1:-1;
}
cout<
return 0;
}
发表于 2019-11-13 10:06:33
回复(0)
2
x,y = map(lambda x:list(map(int, x.split('.'))), input().split())
if x > y: print(1)
elif x
else: print(0)
发表于 2019-09-12 05:09:41
回复(0)
1
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while((line = br.readLine()) != null){
String[] strArr = line.trim().split(" ");
System.out.println(solve(strArr[0], strArr[1]));
}
}
private static int solve(String version1, String version2) {
String[] version1Split = version1.split("\\.");
String[] version2Split = version2.split("\\.");
int idx = 0;
// 逐位比较版本号
while(idx
// 有大小关系时直接返回比较结果,否则跳到下一位进行比较
if(Integer.parseInt(version1Split[idx]) > Integer.parseInt(version2Split[idx]))
return 1;
else if(Integer.parseInt(version1Split[idx])
return -1;
else
idx ++;
}
// 两个版本号的公共长度相同,谁长谁大
if(idx
return 1;
else if(idx
return -1;
else
return 0;
}
}
发表于 2020-10-26 11:26:48
回复(0)
1
/*
不仅要考虑字符串长度相同还要考虑不同的时候
*/
import java.io.*;
public class Main{
public static void main( String[] args ) throws IOException{
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
String[] inarr = br.readLine().split( " " );
String[] str1 = inarr[0].split("\\.");
String[] str2 = inarr[1].split("\\.");
//先直接进行比较,看看谁的版本高
for( int i=0; i
if( Integer.parseInt( str1[i] )
System.out.println( "-1" );
return;
}
else if( Integer.parseInt( str1[i] ) > Integer.parseInt( str2[i]) ){
System.out.println( "1" );
return;
}
}
//当前面的比较没有成功,有如下情况
//长度相同时版本一致,
//一长一短,并且短的部分与长的前面相同
if( str1.length == str2.length ){
System.out.println( "0" );
}
else if( str1.length
System.out.println( "-1" );
}
else{
System.out.println( "1" );
}
return;
}
}
发表于 2020-05-23 15:20:20
回复(0)
1
#include
using namespace std;
int Cmp(string a, string b){
if(a==b)
return 0;
int m = a.length(), n = b.length();
int i=0, j=0, p=0, q=0;
while(i
while(i
i++;
string c = a.substr(p,i-p);
i++;
p = i;
while(j
j++;
string d = b.substr(q,j-q);
j++;
q = j;
if(c==d)
continue;
if(stoi(c)>stoi(d))
return 1;
else
return -1;
}
if(i>=m && j
return -1;
if(i=n)
return 1;
return 0;
}
int main(){
string a,b;
cin>>a>>b;
cout<
return 0;
}
发表于 2019-10-02 21:26:21
回复(0)
1
def main():
a = list(input().split(" "))
b, c = [list(map(int,it.split("."))) for it in a]
l = abs(len(b) - len(c))
if l and len(b) > len(c):
c += [0] * l
if l and len(b)
b += [0] * l
for c1, c2 in zip(b, c):
if c1 > c2:
print(1)
return
elif c1
print(-1)
return
print(0)
if __name__ == "__main__":
main()
发表于 2019-09-19 09:10:07
回复(0)
1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] v1 = sc.next().split("\\.");
String[] v2 = sc.next().split("\\.");
int len = Math.max(v1.length, v2.length);
int[] num1 = new int[len];
int[] num2 = new int[len];
for (int i = 0; i < v1.length; i++) {
num1[i] = Integer.parseInt(v1[i]);
}
for (int i = 0; i < v2.length; i++) {
num2[i] = Integer.parseInt(v2[i]);
}
int index = 0;
while (index < len) {
if (num1[index] < num2[index]) {
System.out.println(-1);
return;
} else if (num1[index] > num2[index]) {
System.out.println(1);
return;
} else {
index++;
}
}
System.out.println(0);
}
}
发表于 2019-08-20 15:13:28
回复(0)
1
#include
using namespace std;
int main()
{
string s1,s2;
cin>>s1>>s2;
int n1=0,n2=0,i=0,j=0;
while(i
{
if(i==s1.size()&&j
{
cout<
break;
}
if(i
{
cout<<1<
break;
}
if(i>=s1.size()&&j>=s2.size())
{
cout<<0<
break;
}
if(s1[i]!='.'&&i
{
n1 += n1*10 + s1[i] - '0';
++i;
}
if(s2[j]!='.'&&j
{
n2 += n2*10 + s2[j] - '0';
++j;
}
if(s1[i]=='.'&&s2[j]=='.')
{
if(n1>n2)
{
cout<<1<
break;
}
else if(n1
{
cout<
break;
}
else
{
n1=0;
n2=0;
i++;
j++;
}
}
}
if(i==s1.size()&&j==s2.size())
{
if(n1>n2)
cout<<1<
else if(n1
cout<
else
cout<<0<
}
return 0;
}
发表于 2019-07-23 09:19:17
回复(0)
1
# Python3 代码---完全通过版
def judgeTwoVersion(str0):
a, b = str0[0], str0[1]
# 将字符串转存为两个列表
list_a, list_b = a.split('.'), b.split('.')
# 求最小的长度,考虑到两个字符串可能出现长度不等的情况
mylen = min(len(list_a), len(list_b))
# 等长度判断
for i in range(mylen):
if int(list_a[i]) < int(list_b[i]):
print('-1')
break
elif int(list_a[i]) > int(list_b[i]):
print('1')
break
elif int(list_a[i]) == int(list_b[i]):
continue
# 非等长度判断
if i == mylen - 1 and list_a[mylen - 1] == list_b[mylen - 1]:
if len(list_a) > len(list_b):
print('1')
elif len(list_a) < len(list_b):
print('-1')
elif len(list_a) == len(list_b):
print('0')
# 主函数
if __name__ == '__main__':
str0 = [i for i in input().split()] # 输入字符串
judgeTwoVersion(str0) # 输出判断结果
需要注意的2个问题:两个字符串的长度可能不同;
输入的字符串中可能出现多个.。 代码仍然存在优化改进的地方。
编辑于 2019-05-12 14:42:36
回复(1)
0
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
str1,str2:="",""
fmt.Scan(&str1,&str2)
if str1==str2{
fmt.Println(0)
}else{
str11:=strings.Split(str1,".")
str21:=strings.Split(str2,".")
n:=min(len(str11),len(str21))
for i:=0;i
num1,_:=strconv.Atoi(str11[i])
num2,_:=strconv.Atoi(str21[i])
if num1>num2{
fmt.Println(1)
return
}else if num1
fmt.Println(-1)
return
}
}
if len(str11)
fmt.Println(-1)
}else{
fmt.Println(1)
}
}
}
func min(a,b int) int {
if a>b{
return b
}
return a
}
发表于 2020-08-16 17:46:52
回复(0)
0
#include
#include
#include
using namespace std;
int cmp (string s1,string s2)
{
if(s1.length()==s2.length())
{
if(s1==s2)
return 0;
else if(s1>s2)
return 1;
else
return -1;
}else if(s1.length()>s2.length())
return 1;
else
return -1;
}
int cmp_version(string s1,string s2)
{
string t1="",t2="";
int n1=s1.length();
int n2=s2.length();
int i=0,j=0;
int res;
while(i
t1="";
t2="";
while(i
{
t1+=s1[i++];
}
while(j
{
t2+=s2[j++];
}
i++;j++;
res=cmp(t1,t2);
if(res==1)
return 1;
else if(res==-1)
return -1;
}
if(j
if(i
return 0;
}
int main()
{
string s1,s2;
cin>>s1>>s2;
cout<
return 0;
}
发表于 2020-07-28 22:53:00
回复(0)
0
#include
(720)#include
// #include
using namespace std;
int versionCompare(string& version1, string& version2) {
char* p1 = (char*)version1.data();
char* p2 = (char*)version2.data();
int v1, v2;
while(*p1 || *p2) {
v1 = v2 = 0;
if (*p1) v1 = atoi(p1);
if (*p2) v2 = atoi(p2);
if (v1 > v2) return 1;
if (v1
while (*p1 && *p1 != '.') ++p1;
if (*p1 == '.') ++p1;
while (*p2 && *p2 != '.') ++p2;
if (*p2 == '.') ++p2;
}
return 0;
}
int main() {
string version1, version2;
while (cin >> version1 >> version2) {
int ret = versionCompare(version1, version2);
cout <
}
return 0;
}
发表于 2020-03-15 01:09:24
回复(0)
0
#include
using namespace std;
int main()
{
string version1, version2;
cin>>version1>>version2;
int n1 = version1.size(), n2 = version2.size();
int p1 = 0, p2 = 0;
while(p1
{
int start1 = p1, start2 = p2;
while(p1
while(p2
int t1 = stoi(version1.substr(start1, p1-start1));
int t2 = stoi(version2.substr(start2, p2-start2));
if(t1
{
cout<
return 0;
}
else if(t1>t2)
{
cout<<1<
return 0;
}
p1++, p2++;
}
if(p1>n1 && p2>n2)
{
cout<<0<
}
else if(p1>n1)
{
cout<
return 0;
}
else
{
cout<<1<
return 0;
}
}
发表于 2019-12-28 14:56:16
回复(0)
0
实在是太简单了
#include
#include
#include
using namespace std;
int x[10005], y[10005], c1=1, c2=1;
char a[100005], b[10005];
int main()
{
cin >> a >> b;
int l = strlen(a);
for(int i = 0; i
{
if(a[i] == '.')
c1++;
else
x[c1] = x[c1] * 10 + (a[i] - '0');
}
l = strlen(b);
for(int i = 0; i
if(b[i] == '.')
c2++;
else
y[c2] = y[c2] * 10 + (b[i] - '0');
for(int i = 1; i <= max(c1,c2); i++)
if(x[i]
{
printf("-1\n");
return 0;
}
else if(x[i] > y[i])
{
printf("1\n");
return 0;
}
printf("0\n");
return 0;
}
发表于 2019-11-06 15:07:17
回复(0)
0
#include
using namespace std;
#define Up(i,a,b) for(int i = a; i <= b; i++)
#define ms(a,x) memset(a,x,sizeof(a))
typedef long long ll;
void split(vector &v,string s) //把字符串s按.分隔开并存入v中
{
int bg = 0, ed = s.find('.');
int len = s.length()-1;
Up(i,0,len)
{
if(s[i] == '.')
{
ed = i;
int t = stoi(s.substr(bg,ed-bg)); //获取各级版本号
// cout <
v.push_back(t);
bg = ed+1;
}
if(i == len) //最后一个版本号
{
ed = len+1;
int t = stoi(s.substr(bg,ed-bg));
//cout <
v.push_back(t);
}
}
}
int cmp(vector &v1,vector &v2)
{
int sz = min(v1.size(),v2.size())-1;
Up(i,0,sz)
{
if(v1[i]
else if(v1[i] > v[2]) return 1;
else return 0;
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
string s1,s2;
while(cin >> s1 >> s2)
{
vector v1,v2;
split(v1,s1); //分割字符串s1
split(v2,s2); //分割字符串s2
//开始比较版本号大小
cout <
}
return 0;
}
发表于 2019-10-04 13:42:07
回复(0)
0
事实证明,C的效率最高
#include
#include
int test(char *ptr1,char *ptr2)
{
if(atoi(ptr1)>atoi(ptr2))
return 1;
else if(atoi(ptr1)
return -1;
else
return 0;
}
int main()
{
char tmp;
char ver1[256];
char ver2[256];
scanf("%s",ver1);
scanf("%s",ver2);
char *ptr1 = ver1;
char *ptr2 = ver2;
int ret = 0;
int i = 0;
int j = 0;
int len1 =strlen(ver1);
int len2 = strlen(ver2);
while(i
{
while(ver1[i] != '.' && ver1[i] != '\0')
i++;
ver1[i] = '\0';
while(ver2[j] != '.' && ver2[j] != '\0')
j++;
ver2[j] = '\0';
ret = test(ptr1,ptr2);
if(ret == 1)
{
printf("1");
return 0;
}
else if(ret == -1)
{
printf("-1");
return 0;
}
i++;
j++;
ptr1 = ver1+i;
ptr2 = ver2+j;
}
if(len1 > len2)
printf("1");
else if(len1
printf("-1");
else
printf("0");
}
发表于 2019-09-20 16:20:59
回复(0)
0
while(line = readline()){
var lines = line.split(" ");
var a = lines[0];
var b = lines[1];
var t = a.split(".");
var y = b.split(".");
var l1 = t.length;
var l2 = y.length;
for(i=0;i
t[i]= parseInt(t[i])
}
for(i=0;i
y[i]= parseInt(y[i])
}
var len = Math.min(l1,l2);
for(i=0;i
if(t[i]>y[i]){
print(1);
break;
}else if(t[i]
print(-1);
break;
}else if(t[i]==y[i]&&i
continue;
}else if(t[i]==y[i]&&i==len-1&&len==l1&&len==l2){
print(0)
}else if(t[i]==y[i]&&i==len-1&&len==l2){
print(1)
}else if(t[i]==y[i]&&i==len-1&&len==l1){
print(-1)
}
}
}
发表于 2019-09-03 10:52:34
回复(0)
0
var lines = readline().split(' ')
var str1 = lines[0]
var str2 = lines[1]
// console.log(str1,str2)
var version1 = str1.split('.')
var version2 = str2.split('.')
// console.log(version1)
var len = version1.length
for (var i = 0; i < len; i++) {
if(parseInt(version1[i])>parseInt(version2[i])){
console.log(1)
break
}else if(parseInt(version1[i])
console.log(-1)
break
}else {
continue
}
}
if((i===len)&&(version1[i-1]===version2[i-1])){
if(version1.length>version2.length){
console.log(1)
}else if (version1.length
console.log(-1)
} else{
console.log(0)
}
}
发表于 2019-08-20 14:31:07
回复(0)
0
if __name__=='__main__':
while True:
try:
ver1,ver2=raw_input().split()
ver1_list=map(int,ver1.split('.'))
ver2_list=map(int,ver2.split('.'))
flag=True
max_len=max(len(ver1_list),len(ver2_list))
ver1_list.extend([0 for i in range(max_len-len(ver1_list))])
ver2_list.extend([0 for i in range(max_len-len(ver2_list))])
for i in range(max_len):
if ver1_list[i]>ver2_list[i]:
print '1'
flag=False
break
if ver1_list[i]
print '-1'
flag=False
break
if flag==True:
print '0'
except:
break
发表于 2019-08-20 12:07:32
回复(0)