55分,大佬求调
查看原帖
55分,大佬求调
871059
SimpleJony楼主2023/8/1 11:32
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string deleteZeroFront(string &str);
string deleteZeroEnd(string &str);
int main(){
    string str,temp1,temp2;
    int pos = 0;
    cin>>str;
    if (str.find(".") == string::npos && str.find("/") == string::npos && str.find("%") == string::npos){
        reverse(str.begin(), str.end());
    }
    if (str.find(".") != string::npos){
        temp1 = str.substr(0,str.find("."));
        temp2 = str.substr(str.find(".")+1,str.length());
        reverse(temp1.begin(),temp1.end());
        reverse(temp2.begin(),temp2.end());
        deleteZeroFront(temp1);
        deleteZeroEnd(temp2);
        str = temp1 + "." + temp2;
    }
    if (str.find("/") != string::npos){
        temp1 = str.substr(0,str.find("/"));
        temp2 = str.substr(str.find("/")+1,str.length());
        reverse(temp1.begin(),temp1.end());
        reverse(temp2.begin(),temp2.end());
        deleteZeroFront(temp1);
        deleteZeroEnd(temp2);
        str = temp1 + "/" + temp2;
    }
    if (str.find("%") != string::npos){
        reverse(str.begin(),str.end());
        str.erase(str.begin(),str.begin()+1);
        deleteZeroFront(str);
        str += "%";
    }
    cout<<str;


    return 0;
}

string deleteZeroFront(string &str){
    int cnt = 0;
    for (int i=0;i<=str.length();i++){
        if (str[i] == '0'){
            cnt++;
        }
        else {
            break;
        }
    }
    str.erase(str.begin(),str.begin()+cnt);
    return str;
}

string deleteZeroEnd(string &str){
    int cnt = 0;
    for (int i=str.length()-1;i>=0;i--){
        if (str[i] == '0'){
            cnt++;
        }
        else {
            break;
        }
    }
    str.erase(str.end() - cnt,str.end());
    return str;
}
2023/8/1 11:32
加载中...