做到现在的笔试题都是凉凉

今天的网易本来一看时间这么多应该很稳特别是做了第一道后直接过,第二道也不难但是直接0,样例都过了,我居然怀疑了题有问题,第三题一堆字看了半天感觉一时写不出来就去调第二道了,最后才发现自己是逆序处理的,字符串变成整数要先转回来后来还是不行只有30。。最后就没了,真的绝望,哪位大佬有空看我哪里过不了。。我的思路是每次从低位取3个字符,然后逆序转成数字,因为分成5个二进制就是按32取余,每次取完÷32。。
全部评论
请问楼主第一题什么思路呀,我把自己能想到的测试样例都输进去都对了,最后还是0%
点赞 回复 分享
发布于 2019-04-06 22:30
每组三位数转换成二进制后不足十位二进制数需要补零,楼主补零了么。 组合到一起后,最前面的0还需要删除掉。
点赞 回复 分享
发布于 2019-04-06 22:29
前导0是不是没删掉,比如输入005555和5555的结果应该是一样的
点赞 回复 分享
发布于 2019-04-06 22:23
#include <iostream> #include <vector> #include <stdio.h> #include <algorithm> #include <cstring> using namespace std; int main(){     int t;     cin>>t;     while(t--){         string s;         cin>>s;         int pp=0;         while(s[pp]=='0')pp++;         if(pp)s=s.substr(pp);         reverse(s.begin(),s.end());         string ans;         int k=0;         while(k<s.size()){             if(k+3>=s.size())break;             string x=s.substr(k,3);             reverse(x.begin(),x.end());             int num=stoi(x);             string tmp;             while(num){                 int t=num%32;                 if(t<=9&&t>=0)tmp.push_back(t+'0');                 else{                     char c='A'+(t-10);                     tmp.push_back(c);                 }                 num/=32;             }             cout<<tmp<<endl;             reverse(tmp.begin(),tmp.end());             cout<<tmp<<endl;             ans+=tmp;             k+=3;         }         string x=s.substr(k);        reverse(x.begin(),x.end());         int num=stoi(x);         string tmp;             while(num){                 int t=num%32;                 if(t<=9&&t>=0)tmp.push_back(t+'0');                 else{                     char c='A'+(t-10);                     tmp.push_back(c);                 }                 num/=32;             }         reverse(tmp.begin(),tmp.end());         reverse(ans.begin(),ans.end());         ans=tmp+ans;         cout<<ans<<endl;     }     return 0; }
点赞 回复 分享
发布于 2019-04-06 22:12

相关推荐

码农顶针:估计让你免费辅导老板孩子的学习
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务