5 solutions
-
0
Python这一块
sentence=input() pro_sentence = sentence[ : :-1] length1=len(pro_sentence) if "%" in sentence: storage2=length1-1 for x in range(1,length1): if pro_sentence[x]!='0': storage2=x break final_sentence=pro_sentence[storage2:length1]+"%" elif "/" in sentence or "." in sentence: for y in range(length1): if pro_sentence[y]=="/" or pro_sentence[y]==".": storage3=y break left=pro_sentence[storage3+1:length1] right=pro_sentence[:storage3] if pro_sentence[storage3]=="/": try: for c in range(0,storage3): if right[c]!='0': key2=c break for b in range(0, length1 - storage3): if left[b] != '0': key1 = b break final_sentence=left[key1:length1-storage3-1]+"/"+right[key2:storage3] except IndexError: final_sentence="0/"+right[key2:storage3] elif pro_sentence[storage3]==".": key3=length1-storage3-2 for f in range(0,length1-storage3-1): if left[f] !='0': key3=f break key4=0 for g in range(storage3-1,-1,-1): if right[g]!='0': key4=g break final_sentence=left[key3:length1-storage3-1]+"."+right[0:key4+1] else: storage1=length1-1 for a in range(length1): if pro_sentence[a] != '0': storage1 = a break final_sentence=pro_sentence[storage1:length1] print(final_sentence) -
0
#include<bits/stdc++.h> using namespace std; int kind=1; bool flag; int len; string a; int o; int main(){ cin>>a; len=a.size(); for(int i=0;i<len;i++){ if(a[i]=='.'){ kind=2; o=i; break; } if(a[i]=='/'){ kind=3; o=i; break; } if(a[i]=='%'){ kind=4; o=i; break; } } if(kind==1){ for(int i=len-1;i>=0;i--){ if(a[i]!='0'&&!flag){ flag=1; } if(flag){ cout<<a[i]; } } if(!flag){ cout<<0; } } else if(kind==2){ for(int i=o-1;i>=0;i--){ if(a[i]!='0'&&!flag){ flag=1; } if(flag){ cout<<a[i]; } } if(!flag){ cout<<0; } cout<<"."; o++; for(;a[o]=='0';o++); flag=0; len--; if(a[len]!='0'){ for(;a[len]=='0';len--); } for(int i=len;i>=o;i--){ if(a[i]!='0'&&!flag){ flag=1; } if(flag){ cout<<a[i]; } } if(!flag){ cout<<0; } } else if(kind==3){ for(int i=o-1;i>=0;i--){ if(a[i]!='0'&&!flag){ flag=1; } if(flag){ cout<<a[i]; } } if(!flag){ cout<<0; } cout<<"/"; o++; for(;a[o]=='0';o++); len--; for(;a[len]=='0';len--); for(int i=len;i>=o;i--){ cout<<a[i]; } } else if(kind==4){ for(int i=len-2;i>=0;i--){ if(a[i]!='0'&&!flag){ flag=1; } if(flag){ cout<<a[i]; } } if(!flag){ cout<<0; } cout<<"%"; } return 0; } -
-1
Java
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); String s[] = new String[2] ; if(str.indexOf('.')!=-1) { // 识别小数 s = str.split("\\."); turn(s[0]); System.out.print("."); turn(s[1]); }else if(str.indexOf('/')!=-1) { // 识别分数 s = str.split("/"); turn(s[0]); System.out.print("/"); turn(s[1]); }else if(str.indexOf('%')!=-1) { // 识别百分数 s = str.split("%"); turn(s[0]); System.out.print("%"); }else { // 识别整数 turn(str); } } // 字符反倒 public static void turn(String str) { boolean flag1 = false; // 标志前面多余的0 boolean flag2 = false; // 标志后面多余的0 String s = ""; // 去除前面多余的0 for(int i=0;i<=str.length()-1;i++) { if(!flag1 && str.charAt(i)=='0') { continue; } flag1 = true; s += str.charAt(i); // 表示已去除前面0的字符串 } // 去除后面多余的0 for(int i=s.length()-1;i>=0;i--) { if(!flag2 && s.charAt(i)=='0') { continue; } flag2 = true; System.out.printf("%s",s.charAt(i)); } if(str == "" || s == "") { System.out.print("0"); return ; } } } -
-3
#include<bits/stdc++.h> using namespace std; string s1,s2,a; void f(int l) { for(int i=0;i<l;i++) { s1+=a[i]; } for(int i=l+1;i<a.size();i++) { s2+=a[i]; } } string dx(string s) { string d; int i; if(s.size()1) { return s; } else { for(i=0;i<s.size() && s[i]'0';i++); int x=i; for(i=s.size()-1;i>=x;i--) { d+=s[i]; } return d; } } string d(string s) { string d; int i; if(s.size()1) { return s; } else { for(i=s.size()-1;i>=0 && s[i]'0';i--); for(;i>=0;i--) { d+=s[i]; } return d; } } int main() { ios::sync_with_stdio(false); cin>>a; int l=0; for(int i=0;i<a.size();i++) { if(a[i]'/') { l=i; f(l); cout<<d(s1)+'/'+d(s2); } if(a[i]'.') { l=i; f(l); cout<<d(s1)+'.'+dx(s2); } if(a[i]'%') { if(a[0]'0') { cout<<0<<'%'; return 0; } l=i; a[i]='0'; cout<<d(a)+'%'; } } if(l==0) { cout<<d(a); } return 0; }
-
-4
#include<bits/stdc++.h> using namespace std; string s1,s2,a; void f(int l) { for(int i=0;i<l;i++) { s1+=a[i]; } for(int i=l+1;i<a.size();i++) { s2+=a[i]; } } string dx(string s) { string d; int i; if(s.size()1) { return s; } else { for(i=0;i<s.size() && s[i]'0';i++); int x=i; for(i=s.size()-1;i>=x;i--) { d+=s[i]; } return d; } } string d(string s) { string d; int i; if(s.size()1) { return s; } else { for(i=s.size()-1;i>=0 && s[i]'0';i--); for(;i>=0;i--) { d+=s[i]; } return d; } } int main() { ios::sync_with_stdio(false); cin>>a; int l=0; for(int i=0;i<a.size();i++) { if(a[i]'/') { l=i; f(l); cout<<d(s1)+'/'+d(s2); } if(a[i]'.') { l=i; f(l); cout<<d(s1)+'.'+dx(s2); } if(a[i]'%') { if(a[0]'0') { cout<<0<<'%'; return 0; } l=i; a[i]='0'; cout<<d(a)+'%'; } } if(l==0) { cout<<d(a); } return 0; }
- 1
Information
- ID
- 5611
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 3
- Tags
- # Submissions
- 382
- Accepted
- 121
- Uploaded By