2 条题解
-
2
先看末尾有没有百分号,然后遍历一遍看有没有小数点和除号,最后剩下的就是整数了。
注意长度为 0 的时候返回个 0 而不是空字符串
#include<bits/stdc++.h> using namespace std; string rev(string in){ string tmp=in; reverse(tmp.begin(),tmp.end()); int i=0; while(tmp[i]=='0'){++i;} tmp=tmp.substr(i,tmp.length()-i); if(tmp!="") return tmp; else return "0"; } string xsrev(string input){ string tmp = input; reverse(tmp.begin(),tmp.end()); int i=tmp.length()-1; while(tmp[i]=='0'){--i;} tmp=tmp.substr(0,i+1); if(tmp!="") return tmp; else return "0"; } int main(){ string n; cin>>n; if(n[n.length()-1]=='%'){ cout<<rev(n.substr(0,n.length()-1))<<'%'; return 0; } for(int i=0;i<n.length()-1;i++){ if(n[i]=='.'){ cout<<rev(n.substr(0,i))<<'.'<<xsrev(n.substr(i+1,n.length()-i-1)); return 0; } if(n[i]=='/'){//看到分数不约分我太高兴了 cout<<rev(n.substr(0,i))<<'/'<<rev(n.substr(i+1,n.length()-i-1)); return 0; } } cout<<rev(n); return 0; }
-
0
python版,主要是处理0,整数和小数处理不太一样。
def ch(s): return str(int(s)) s = input() if "/" in s: s = s.split("/") s[0] = ch(s[0][::-1]) s[1] = ch(s[1][::-1]) s = "/".join(s) print(s) elif "%" in s: s = s[:-1][::-1] print(ch(s)+"%") elif '.' in s: s = s.split(".") s[0] = ch(s[0][::-1]) s[1] = ch(s[1])[::-1] s = ".".join(s) print(s) else: print(ch(s[::-1]))
- 1
信息
- ID
- 549
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 107
- 已通过
- 41
- 上传者