小小的寫程式碼時的語法重新發現
今天寫了一道通過率最高的題,caicaicaicaicaicai............................
雖然很簡單,但是還是發現了一些新的知識點,嗯,還很差。。。。。
例如:
1.
我用一個數組a[26]來記錄26個字母在字串中哪些是出現過的。,並且下面判斷字串S(含有大小寫字母)中的字母是否在上一個字串中出現過。
但是一開始的時候總是反映陣列越界。。。。。。。。,我慌了,這。。。沒錯啊。。。。
一開始的時候我寫成了這樣 if (a[S[i]-'a']!=0&&S[i]>='a'&&S[i]<='z')
cnt++;
這樣就一定會報錯,因為當S[i]是一個大寫字母時候,S[i]-'a'是一個負數,也就是說這時候 a[S[i]-'a'] 肯定是錯誤的。
這個時候只要將判斷語句放在後面就可以了。 if (S[i]>='a'&&S[i]<='z'&&a[S[i]-'a']!=0) 這樣當S[I]是大寫的時候在前面的判斷條件就會被卡住,從而不會再進行到下面的 a[S[i]-'a']!=0 ,這其實就是 C++中的斷路特性。
2.
C++中字串中的長度函式的首字母是小寫的。 str.length() 這樣的寫法,在java中好像是str.Length 弄混了,弄混了。。。。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
今天老鄉聚會,發現了學長學姐太牛了吧,南大,中科大,中山,北師範。。。。。。。。。。看看他們的現在的生活真幸福。。。。自己累成狗,現在都零點37了,還沒睡呢.
我會變強,可惜不是你。