数字字符串格式化| 豆包MarsCode AI刷题

34 阅读1分钟
#include <bits/stdc++.h>

using namespace std;

string solution(const string& s) {
    int idx = s.size();
    for(int i = 0 ; i < s.size() ; i ++)
        if(s[i] == '.') 
        {
            idx = i;
            break;
        }
    
    string str = "";
    for(int i = s.size() - 1 ; i >= idx ; i --)
        str += s[i];

    int cnt = 0;
    for(int i = idx - 1 ; i >= 0 ; i -- , cnt ++)
    {
        if(cnt % 3 == 0 && cnt)
            str += ",";
        str += s[i];
    }

    reverse(str.begin() , str.end());

    while(*str.begin() == ',' || *str.begin() == '0') 
        str.erase(0 , 1);

    // cout << str << '\n';
    return str;
}

int main() {
    cout << (solution("1294512.12412") == "1,294,512.12412") << endl;
    cout << (solution("0000123456789.99") == "123,456,789.99") << endl;
    cout << (solution("987654321") == "987,654,321") << endl;
}