將各種格式的空間單位統一轉換為位元(bit)
可能出現的格式如下:
| 格式 | 代表 |
|---|---|
| xgb | bits |
| ymb | bits |
| zkb | bits |
| ubyte | bits |
| z.akb | kb 又 byte |
| u.vbyte | byte 又 bits |
| vbit | bits |
| xgym | gb 又 mb |
| xgymzk | gb 又 mb 又 kb |
| ymzk | mb 又 kb |
評分結果(參考) : AC (2ms, 336KB)
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
while(cin >> s){
int ans=0, num=0;
for(int i=0; i<s.size(); i++){
if(s[i]>='0' && s[i]<='9'){
num = num*10 + (s[i]-'0');
}
else if(s.substr(i, 4) == "hour"){
ans += num*60*60*1000;
i += 3;
num = 0;
}
else if(s.substr(i, 3) == "min"){
ans += num*60*1000;
i += 2;
num = 0;
}
else if(s.substr(i, 2) == "ms"){
ans += num;
i += 1;
num = 0;
}
else if(s[i] == 'h'){
ans += num*60*60*1000;
num = 0;
}
else if(s[i] == 'm'){
ans += num*60*1000;
num = 0;
}
else if(s[i] == 's'){
ans += num*1000;
num = 0;
}
else if(s[i] == '.'){
ans += num*1000 + (s[i+1]-'0')*100;
break;
}
}
cout << ans << "\n";
}
return 0;
}