马蜂良好,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 Hatsunatsu @ 2023-11-04 11:19:14

第一次发求助帖 祭


by Regenbogen_71 @ 2023-11-04 11:22:34

@Hatsunatsu 您好,不必如此麻烦您可以参考以下代码实现反转操作,但需要自行实现判定负数

inline int rev(int x,int res = 0) {
    while (x)res = res * 10 + x % 10, x /= 10;
    return res;
}

by Hatsunatsu @ 2023-11-04 11:25:01

@Regenbogen_71 蟹蟹,但我还是想找出我的方法存在的问题qwq


by _QyGyQ_ @ 2023-11-04 11:32:43

if(top()=='0'&&i==0){
            pop();
        }
        else if(top()=='0'&&i==1){
            pop();
        }

您好,请问这个是干嘛的?既然你后面已经去过前导0,这两行就没有作用,去掉就AC了。 @Hatsunatsu


by Regenbogen_71 @ 2023-11-04 11:34:40

@Hatsunatsu 您好,您的代码在if(top()=='0'&&i==0){ pop(); } else if(top()=='0'&&i==1){ pop(); } 出了问题,您删除了非前导零,导致您的输出少了零


by _QyGyQ_ @ 2023-11-04 11:36:32

@Regenbogen_71 怎么做了这么多紫题T^T


by Hatsunatsu @ 2023-11-04 11:37:06

加后面去掉前导 0 的部分时候忘记前面的了。

谢谢你!

@meng_cen


by _Regenbogen_ @ 2023-11-04 11:38:29

@meng_cen 您猜


by Hatsunatsu @ 2023-11-04 11:38:51

AC 了,谢谢你!@Regenbogen_71


by _QyGyQ_ @ 2023-11-04 11:45:37

6,原来开小号(wwwwwwwwwwwwww


| 下一页