用string RE,用char就AC为啥?
查看原帖
用string RE,用char就AC为啥?
60992
zxrom楼主2021/2/11 15:02

char

#include<bits/stdc++.h>
using namespace std;
char s[50],a[50],b[50],x;
int main()
{
	cin>>s;
	int lens = strlen(s),yes = 0,la = 0,lb = 0,st = 0;
	for(int i = 0;i < lens;i++)
	{
		if(s[i]<'0'||s[i]>'9')
		{
			x = s[i],yes = 1;
			continue;
	    }
		if(yes) b[lb++] = s[i];
		else a[la++] = s[i];
	}
	la--,lb--;
	while(a[la] == '0' && la-1 >= 0)la--;
	if(x=='.') while(st+1 <= lb && b[st] == '0')st++;
	else while(lb >= 0 && b[lb] == '0')lb--;
	for(int i = la;i >= 0;i--)cout<<a[i];
	cout<<x;
	for(int i = lb;i >= st;i--)cout<<b[i];
	cout<<endl;
	return 0;
}

string

#include<bits/stdc++.h>
using namespace std;
string s,a,b;
char x;
int main()
{
	cin>>s;
	int lens = s.size(),yes = 0,la = 0,lb = 0,st = 0;
	for(int i = 0;i < lens;i++)
	{
		if(s[i]<'0'||s[i]>'9')
		{
			x = s[i],yes = 1;
			continue;
	    }
		if(yes) b[lb++] = s[i];
		else a[la++] = s[i];
	}
	la--,lb--;
	while(a[la] == '0' && la-1 >= 0)la--;
	if(x=='.') while(st+1 <= lb && b[st] == '0')st++;
	else while(lb >= 0 && b[lb] == '0')lb--;
	for(int i = la;i >= 0;i--)cout<<a[i];
	cout<<x;
	for(int i = lb;i >= st;i--)cout<<b[i];
	cout<<endl;
	return 0;
}
2021/2/11 15:02
加载中...