首页 > 其他分享 >BM22比较版本号

BM22比较版本号

时间:2023-01-30 16:24:49浏览次数:37  
标签:return string 版本号 BM22 int result str 比较 arr2

https://www.nowcoder.com/exam/oj?page=1&tab=%E7%AE%97%E6%B3%95%E7%AF%87&topicId=295 解法1. 先将字符串中的每个修订号保存到数组里,再依次比较。 空间复杂度O(n) 时间复杂度O(n) package main import "strconv" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 比较版本号 * @param version1 string字符串 * @param version2 string字符串 * @return int整型 */

// 字符串转换为数字数组 func stringToArray(version string) []int { str := "" result := make([]int, 0, len(version)) for _, c := range version { if c == '.' { tmp, _ := strconv.Atoi(str) result = append(result, tmp) str = "" continue } else { str = str + string(c) } } if str != "" { tmp, _ := strconv.Atoi(str) result = append(result, tmp) } return result } func compare( version1 string , version2 string ) int { // write code here arr1 := stringToArray(version1) arr2 := stringToArray(version2) for i:=0;i<len(arr1)&&i<len(arr2);i++{ if(arr1[i] > arr2[i]){ return 1 } if(arr1[i] < arr2[i]){ return -1 } } if len(arr1) > len(arr2){ return 1 } if len(arr2) > len(arr2){ return -1 } return 0
} 进阶: 空间复杂度 O(1), 时间复杂度 O(n) package main import "strconv" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 比较版本号 * @param version1 string字符串 * @param version2 string字符串 * @return int整型 */
func compare( version1 string , version2 string ) int { // write code here i,j:=0,0 stri,strj := "","" var tmpi,tmpj int for;i<len(version1) || j<len(version2);{ for i<len(version1) && version1[i] != '.'{ stri = stri+ string(version1[i]) i++ } for j<len(version2) && version2[j] != '.'{ strj = strj + string(version2[j]) j++ } if stri != ""{ tmpi,_ = strconv.Atoi(stri) } if strj != ""{ tmpj,_ = strconv.Atoi(strj) } if tmpi > tmpj{ return 1 } if tmpi < tmpj{ return -1 } i++ j++ stri = "" strj = "" tmpi = 0 tmpj = 0 } return 0 }

标签:return,string,版本号,BM22,int,result,str,比较,arr2
From: https://www.cnblogs.com/starter-songudi/p/17076345.html

相关文章