From 6cfdf0ffb63aa0afda5739b766ff1a5eb23eb5c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Khoa=20Hu=E1=BB=B3nh=20=28Daniel=29?= Date: Fri, 3 May 2024 22:29:05 +0700 Subject: [PATCH] Create main.go --- solution/165/main.go | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 solution/165/main.go diff --git a/solution/165/main.go b/solution/165/main.go new file mode 100644 index 0000000..3977253 --- /dev/null +++ b/solution/165/main.go @@ -0,0 +1,47 @@ +package main + +func compareVersion(version1 string, version2 string) int { + + rev1 := strings.Split(version1, ".") + rev2 := strings.Split(version2, ".") + // fmt.Println(rev1, rev2) + + revInt1 := make([]int, len(rev1)) + revInt2 := make([]int, len(rev2)) + + for i := 0; i < len(rev1); i++ { + revInt1[i], _ = strconv.Atoi(rev1[i]) + } + for i := 0; i < len(rev2); i++ { + revInt2[i], _ = strconv.Atoi(rev2[i]) + } + // fmt.Println(revInt1, revInt2) + + i := 0 + j := 0 + + for i < len(revInt1) && j < len(revInt2) { + + if revInt1[i] < revInt2[j] { + return -1 + } else if revInt1[i] > revInt2[j] { + return 1 + } + i++ + j++ + } + + for i < len(revInt1) { + if revInt1[i] > 0 { + return 1 + } + i++ + } + for j < len(revInt2) { + if revInt2[j] > 0 { + return -1 + } + j++ + } + return 0 +}