这只是个随便写的辅助程序,切勿较真,仅供大佬嘲笑。起因:题解交了6次都因为各种格式问题被自动打回了
省流:可以判多余空格,缺少空格,全角半角标点打错
先贴代码:
#include<bits/stdc++.h>
using namespace std;
int n;
string a;
int main()
{
freopen("a.txt","r",stdin);
while(cin>>a)
{
if(a[0]=='`'&&a[1]=='`')
{
cout<<endl<<" --代码屏蔽--"<<endl;
while(1)
{
cin>>a;
if(a[0]=='`')
{
break;
}
}
}
else
for(int i=0;i<a.size();i++)
{
if(a[i]=='$')
{
cout<<endl<<a[i];
int p=1;
i++;
for(;i<a.size();i++)
{
cout<<a[i];
if(a[i]=='$')
{
p=0;
cout<<endl;
break;
}
}
if(p)
{
while(cin>>a)
{
int v=0;
for(int j=0;j<a.size();j++)
{
cout<<a[j];
if(a[j]=='$')
{
cout<<endl;
v=1;
i=j;
break;
}
}
if(v)
{
break;
}
}
}
}
else
if(int(a[i])==-95&&int(a[i+1])==-93)
{
cout<<endl<<"。"<<endl;
i++;
}
else
if(int(a[i])==-93&&int(a[i+1])==-84)
{
cout<<endl<<","<<endl;
i++;
}
else
if(int(a[i])==-95&&int(a[i+1])==-94)
{
cout<<endl<<"、"<<endl;
i++;
}
else
if(int(a[i])==-93&&int(a[i+1])==-65)
{
cout<<endl<<"?"<<endl;
i++;
}
else
if(int(a[i])==-93&&int(a[i+1])==-70)
{
cout<<endl<<":"<<endl;
i++;
}
else
if(int(a[i])==-93&&int(a[i+1])==-95)
{
cout<<endl<<"!"<<endl;
i++;
}
else
{
cout<<a[i];
}
}
cout<<endl;
cout<<endl<<"====================================="<<endl<<endl;
}
}
运行后遇到空格和回车会输出一个分割线。会自动把latex公式合并成一行。会自动把全角中文的部分符号(包含, 。 、 : !)挑出来单独一行。
这是个例子:
根据题解审核要求,公式和汉字间要以空格隔开,所以夹在汉字间的公式会被独立分在一个分割块内。若没有,则因检查公式与汉字间是否有空格。
根据题解审核要求,汉字与全角符号间不能有空格,所以汉字和全角符号会在同一个分割块。且标点会被独立一行(特别的,若你打成了半角标点,则会与汉字黏一起。此时你应该重新在中文输入法下输入标点。)
如图:使用半角标点是这样的(第一行错误示范,第二行正确示范)
注:代码尚未完备