Re: [閒聊] 每日leetcode已回收
※ 引述 《Rushia (早瀬ユウカの体操服)》 之銘言:
:
: https://leetcode.com/problems/compare-version-numbers/description
: 165. Compare Version Numbers
: 給你兩個表示版本的字串,求出哪個版本比較大
: If version1 < version2, return -1.
: If version1 > version2, return 1.
: Otherwise, return 0.
: 版本以 . 分隔,你可以忽略 0 開頭的版本號 ,也就是0001 和 1 相等。
:
: 思路:
: 1.用函數把版本依據 . 分成好幾組,每組轉成 int 比較大小,如果不相等就返回。
: 2.如果比完之後還有沒檢查的版本字串,該版本如果遇到大於0一定比較大,否則返回0。
思路:
媽的
c++好像沒有split
所以我要自己刻函式
然後我刻的函式
因為我把分割字串跟弄成數字合在一起
因為我判斷是用讀到 . 為止
害我中間一直在想讀到結尾的時候怎麼辦
然後我就懶得想了
直接幫他加上一個 .
好爽
每次都是從第一組版本開始比
有以下幾種情況
1:
有一組版本比較大 回傳
2:
如果有一組讀到底了
但是另一組還沒
那就看看沒讀完的有沒有除了0以外的數字
有的話一定比較大
3:
都一樣 回傳
class Solution {
public:
pair<int,int> wtf(string hate,int l)
{
pair<int,int> res ;
int n = 0;
while((l+n < hate.size())&&(hate[l+n] != '.'))
{
n++;
}
string jiwp = hate.substr(l,n);
int gay = stoi(jiwp);
return {gay,l+n};
}
int compareVersion(string version1, string version2)
{
version1 += ".";
version2 += ".";
int alen = version1.size();
int blen = version2.size();
int al = 0;
int bl = 0;
bool ok = 0;
while(!ok)
{
int a = 0;
int b = 0;
if(wtf(version1,al).first > wtf(version2,bl).first)
{
return 1;
}
if(wtf(version1,al).first < wtf(version2,bl).first)
{
return -1;
}
// cout << wtf(version1,al).first << " " << wtf(version1,al).second
<< endl;
// cout << wtf(version2,bl).first << " " << wtf(version2,bl).second
<< endl;
// cout << "=============\n";
al = wtf(version1,al).second +1;
bl = wtf(version2,bl).second +1;
if(al==alen && bl==blen)return 0;
else if(al==alen){
while(bl < blen)
{
if(version2[bl] != '.' && version2[bl] != '0')return -1;
bl++;
}
return 0;
}
else if(bl==blen){
while(al < alen)
{
if(version1[al] != '.' && version1[al] != '0')return 1;
al++;
}
return 0;
}
}
return 0;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.39.122 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1714712768.A.576.html
→
05/03 13:06,
1年前
, 1F
05/03 13:06, 1F
噓
05/03 13:07,
1年前
, 2F
05/03 13:07, 2F
→
05/03 13:08,
1年前
, 3F
05/03 13:08, 3F
推
05/03 13:08,
1年前
, 4F
05/03 13:08, 4F
→
05/03 13:08,
1年前
, 5F
05/03 13:08, 5F
→
05/03 13:08,
1年前
, 6F
05/03 13:08, 6F
→
05/03 13:08,
1年前
, 7F
05/03 13:08, 7F
推
05/03 13:11,
1年前
, 8F
05/03 13:11, 8F
→
05/03 13:12,
1年前
, 9F
05/03 13:12, 9F
→
05/03 13:15,
1年前
, 10F
05/03 13:15, 10F
→
05/03 14:03,
1年前
, 11F
05/03 14:03, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 180 之 1548 篇):