[C/C++] LeetCode在線編程心得分享(不斷更新中... ...)

1 LeetCode介紹

  LeetCode是一個很好的免費在線編程平臺,對於程序員提升本身的編程技巧和編程思惟有着很大的幫助。LeetCode爲用戶提供了衆多的主流編程語言,好比,C++、Java、Python、C、C#以及JavaScript等。此外,它還爲每道題的難易程度和成功率進行了準確的統計,而且能夠顯示用戶提交程序的運行時間使用戶能夠了解本身程序的運行效率,從而加以改進。尤爲是對於面臨找工做的苦逼同窗們,各家大公司的筆試和麪試常常會有各類各樣的編程題,有許多都出自LeetCode的原題,因此天天堅持練習纔是王道啊。git

  我也是以前由於要準備找實習,因此纔開始了本身的LeetCode之旅,我也在時刻提醒本身,要堅持完成LeetCode上的全部題目。我以爲編程的這東西不能一律而過,相反它須要咱們不斷地積累和總結,尤爲是一些編程的技巧問題。藉助這篇博文,我把本身當時遇到困難的問題總結到這裏,但願能與你們分享和討論。程序員

2 Compare version numbers(2015.06.20)

  問題描述:Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.You may assume that the version strings are non-empty and contain only digits and the 「.」 character.The 「.」 character does not represent a decimal point and is used to separate number sequences.For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.面試

  Here is an example of version numbers ordering:
  0.1 < 1.1 < 1.2 < 13.37編程

  注意:2.1<2.10而不是「=」;01.1=1.1編程語言

  代碼以下:函數

// 運行結果0ms
int
compareVersion(string version1, string version2) { istringstream iss1(version1); // 要學會靈活使用istringstream istringstream iss2(version2); string token1, token2; while(!iss1.eof() || !iss2.eof()) { getline(iss1, token1, '.'); getline(iss2, token2, '.'); const char *p1=token1.c_str(); // string.c_str():將字符串string轉換爲對應的(char *)類型,後邊的atoi函數的輸入只能爲(char *)類型;
                        //這兩行代碼徹底沒有必要加,可是我使用的Code::Blocks編譯環境,沒有stoi()這一函數,因此只能藉助atoi()函數.
const char *p2=token2.c_str(); if(atoi(p1) > atoi(p2)) return 1; if(atoi(p1) < atoi(p2)) return -1; token1 = token2 = "0"; } return 0; }
相關文章
相關標籤/搜索