马蜂良好,90分求助!qwq

P1307 [NOIP2011 普及组] 数字反转

Hatsunatsu @ 2023-11-04 11:17:43

RT,栈方法。感觉思路没有什么问题,但 WA#7。

评测记录

代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string>
#include<cstring>
#include<cctype>

typedef long long ll;
typedef long double ld;

using namespace std;
const int MAXN=1000000005;

char a[MAXN],b[MAXN];
ll t;

void push(char n){
    a[t++]=n;
}

void pop(){
    t--;
}

char top(){
    return a[t-1];
}

int size(){
    return t;
}

bool empty(){
    return t==0;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin.getline(b,MAXN);
    ll i=0;
    ll res=0;
    if(b[0]=='0'&&b[1]=='\0'){
        cout<<0;
        return 0;
    }
    while(b[i]!='\0'){
        push(b[i]);
        if(top()=='0'&&i==0){
            pop();
        }
        else if(top()=='0'&&i==1){
            pop();
        }
        if(top()=='-'){
            pop();
            res=1;
        }
        i++;
    }
    while(top()=='0'){
        pop();
    }
    if(res==1){
        cout<<"-";
    }
    while(!empty()){
        cout<<top();
        pop();
    }
    return 0;
}

by Sci_8633 @ 2023-12-30 20:31:40

@Hatsunatsu 送你一招:直接用reverse函数翻转字符串,再修改一下细节就好了。 AC代码送给你(借给你)用用。

#include<bits/stdc++.h>
using namespace std;
string n;
bool flag;
int main(){
    cin>>n;
    int len=n.size();
    for(int i=0;i<len;++i){
        if(n[i]=='0')
            flag=1;
        if(flag==1)
            printf("%c",'0');
            break;
    }
    if(n[0]!='-'){
        reverse(n.begin(),n.end());
        int i=0;
        while(n[i]=='0'){
            i++;
        }
        n.erase(0,i);
        cout<<n;
    }
    else{
        n.erase(0,1);
        len--;
        reverse(n.begin(),n.end());
        cout<<'-';
        int i=0;
        while(n[i]=='0'){
            i++;
        }
        n.erase(0,i);
        cout<<n;
    }
    return 0;
}

by Hatsunatsu @ 2023-12-30 21:12:38

@Sci_8633 的确是这样的,不过那会我想到啥就写啥了,思路有很多啊。


by Sci_8633 @ 2024-01-05 20:28:30

@Hatsunatsu (❤ ω ❤) 当然啦~


上一页 |