一个艰难的起步

Posted on 2018-07-04 22:10  蓝九  阅读(83)  评论(0)    收藏  举报

 

  算起来有大概半年左右没碰过代码了吧,我本来也很菜,今天这个开始连复健都不能算,只能说是一个艰难的起步。

  某二本师范大学软件工程应届生,考研失败,无项目经验,无实习经验,只有一颗执着于干开发的心,不想辜负自己当初填报高考志愿时的不服从调剂,感觉自己像个神经病一样。

  我纠结了三天要怎么办,要学什么,学什么快,学什么好找工作,就业压力让我焦虑了三天,最后我还是决定,脚踏实地,踏踏实实的学会学好一种应用最广泛的语言。

  我选择了Java,从头从最最基础的东西开始,都弄懂弄明白,从头开始慕课网学Java工程师的路径课程。同时,开始在leetcode上做题。

 

  今天做了两道题。

其中一道题是今天线上笔试中做到的一道题,因为时间有限觉得考虑的很单一,结束后特意找了这题来做。

题目如下:

165. Compare Version Numbers—比较版本号
比较两个版本号 version1 和 version2。 如果 version1
> version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。 例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。
示例
1: 输入: version1 = "0.1", version2 = "1.1" 输出: -1 示例 2: 输入: version1 = "1.0.1", version2 = "1" 输出: 1 示例 3: 输入: version1 = "7.5.2.4", version2 = "7.5.3" 输出: -1

最后提交通过的代码如下:

 1 class Solution {
 2     public int compareVersion(String version1, String version2) {
 3        
 4         int v1,v2,temp=0;
 5         
 6         //拆分字符串并赋给新的字符串数组
 7         String[] ver1 = version1.split("\\.");
 8         String[] ver2 = version2.split("\\.");
 9         
10         //把拆分的字符串转化成int分别进行比较 
11         for(int i=0;(i<ver1.length)||(i<ver2.length);i++){
12             if(i<ver1.length){
13                 v1 = Integer.parseInt(ver1[i]);
14             }else{v1=0;}
15             
16             if(i<ver2.length){
17                 v2 = Integer.parseInt(ver2[i]);
18             }else{v2=0;}
19         
20             if(v1>v2){temp=1;break;}
21             if(v1<v2){temp=-1;break;}
22             if(v1==v2){temp=0;}
23         }
24         return temp;
25     }
26 }

 

在线上笔试时,我只考虑了每个点分隔的数字都是单个数字的情况,当时我的想法是,单独比较每一位的大小,这样的话 1.13就会小于1.2,显然不对。

在leetcode提交果然没能通过,最终我使用了 String 类的 split(String regex) 方法,它的作用就是根据匹配给定的正则表达式来拆分字符串。在这道题中用到的正则表达式分隔符为 "\\."