侧边栏
首页代码

A == B ? string.erase(位置,删除多少个)

要删除数字前的0,以及小数部分末尾的0

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s1,s2;
    while(cin >> s1>>s2)
    {
        int t1 = 0;
        if(s1[0]=='0')
        {
            while(s1[t1]=='0'&&s1[t1+1] == '0')
            {
                t1++;
            }
            t1++;
            s1.erase(0,t1);
        }
        t1 = 0;
        if(s2[0]=='0')
        {
            while(s2[t1]=='0'&&s2[t1+1] == '0')
            {
                t1++;
            }
            t1++;
            s2.erase(0,t1);
        }

        int f1 = 0,f2= 0;
        for(int i = 0;i<s1.size();i++)
        {
            if(s1[i]=='.' && s1[s1.size()-1] == '0')
            {
                f1=1;
            }
        }
        for(int i = 0;i < s2.size();i++)
        {
            if(s2[i]=='.'&&s2[s2.size()-1]=='0') f2 = 1;
        }
        if(f1)
        {
            t1 = s1.size() - 1;
            while(s1[t1]=='0'&&s1[t1-1]=='0')
            {
                t1--;

            }
            s1.erase(t1);
        }

        int t2 = 0;
        if(f2)
        {
            t2 = s2.size() - 1;
            while(s2[t2]=='0'&&s2[t2-1]=='0')
            {
                t2--;
            }
            s2.erase(t2);
        }
        for(int i = 0;i<s1.size();i++)
        {
            if(s1[i]=='.')
                s1.erase(i,1);
        }
        for(int i=0;i<s2.size();i++)
        {
            if(s2[i]=='.')
                s2.erase(i,1);
        }
        /*cout << s1 << endl;
        cout <<s2<<endl;*/

        if(s1.size()!=s2.size())
        {
            printf("NO\n");
           goto loop;
        }
        for(int i = 0;i<s1.size();i++)
        {
            if(s1[i] != s2[i])
            {
                printf("NO\n");
                goto loop;
            }
        }
        printf("YES\n");
        loop:;
    }
    return 0;
}
posted @ 2021-03-26 15:30  AlexStraightUp  阅读(58)  评论(0)    收藏  举报
页脚HTML代码