记录编号 30237 评测结果 AAAAAAAAAA
题目名称 字符串编辑 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2011-10-28 13:19:48 内存使用 0.27 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
char str[500];
unsigned int len;

bool Delete(char s)
{
	int loc;
	bool flag=false;
	for (unsigned int i=0;i<len;i++)
	{
		if(str[i]==s)
		{
			loc=i;
			flag=true;
			break;
		}
	}
	
	if(!flag)
		return false;
	
	for (unsigned int i=loc;i<len;i++)
	{
		str[i]=str[i+1];
	}	
	len--;	
	return true;
}

bool Insert(char c,char s)
{
	int loc;
	bool flag=false;
	for (int i=len-1;i>=0;i--)
	{
		if(str[i]==c)
		{
			loc=i;
			flag=true;
			break;
		}
	}
	
	if(!flag)
		return false;
	
	for (int i=len;i>loc;i--)
		str[i]=str[i-1];
	str[loc]=s;
	len++;
	return true;
}

bool Replace(char c,char s)
{
	bool flag=false;
	for (unsigned int i=0;i<len;i++)
	{
		if(str[i]==c)
		{
			str[i]=s;
			flag=true;
		}
	}
	if(!flag)
		return false;
	return true;
}

int main()
{
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	memset(str,'\0',sizeof(str));
	scanf("%[^\n]",&str);
	len=strlen(str);
	
	char a;
	char b;
	char c;
	bool flag;
	cin>>a;
	if(a=='D')
	{
		cin>>b;
		
		flag=Delete(b);
		//if(flag)
		//{
			for (unsigned int i=0;i<len;i++)
				cout<<str[i];
		//}	
		//else
			//cout<<"error"<<endl;
		return 0;
	}
	
	if(a=='I')
	{
		cin>>b>>c;
		flag=Insert(b,c);
		//if(flag)
		//{
			for (unsigned int i=0;i<len;i++)
				cout<<str[i];
		//}
		//else
		//	cout<<"error"<<endl;
		return 0;
	}
	
	if(a=='R')
	{
		cin>>b>>c;
		flag=Replace(b,c);
		if(flag)
		{
			for (unsigned int i=0;i<len;i++)
				cout<<str[i];
		}
		else
			cout<<"error"<<endl;
		return 0;
	}
	return 0;
}