85求调
查看原帖
85求调
1272259
cgxd楼主2024/9/6 22:32
#include<bits/stdc++.h>
using namespace std;
string s;
bool f(char c){
	return c == '.' or c == '/';
}string change(string s){
	int k = s.find('.');
	if(k != -1){
		string s1 = s.substr(0, k), s2 = s.substr(k + 1);
		return change(s1) + string(1, '.') + change(s2);
	}k = s.find('/');
	if(k != -1){
		string s1 = s.substr(0, k), s2 = s.substr(k + 1);
		return change(s1) + string(1, '/') + change(s2);
	}if(s.back() == '%'){
		s.pop_back();
		return change(s) + string(1, '%');
	}reverse(s.begin(), s.end());
	return s;
}string check(string s){
	int k = count_if(s.begin(), s.end(), f);
	if(k){
		reverse(s.begin(), s.end());
		while(s.back() == '0') s.pop_back();
		if(f(s.back())) s.push_back('0');
		reverse(s.begin(), s.end());
		while(s.back() == '0') s.pop_back();
		if(f(s.back())) s.push_back('0');
		return s;
	}reverse(s.begin(), s.end());
	while(s.back() == '0') s.pop_back();
	if(s.empty()) return string(1, '0');
	reverse(s.begin(), s.end());
	return s;
}signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> s;
	cout << check(change(s));
	return 0;
}
2024/9/6 22:32
加载中...