藍橋杯—字符串編輯



  算法訓練 字符串編輯  
時間限制:1.0s   內存限制:512.0MB
    
問題描述
  從鍵盤輸入一個字符串(長度<=40個字符),並以字符 ’.’ 結束。編輯功能有:
  1 D:刪除一個字符,命令的方式爲: D a 其中a爲被刪除的字符,例如:D s 表示刪除字符 ’s’ ,若字符串中有多個 ‘s’,則刪除第一次出現的。
  2 I:插入一個字符,命令的格式爲:I a1 a2 其中a1表示插入到指定字符前面,a2表示將要插入的字符。例如:I s d 表示在指定字符 ’s’ 的前面插入字符 ‘d’ ,若原串中有多個 ‘s’ ,則插入在最後一個字符的前面。
  3 R:替換一個字符,命令格式爲:R a1 a2 其中a1爲被替換的字符,a2爲替換的字符,若在原串中有多個a1則應全部替換。
  在編輯過程中,若出現被改的字符不存在時,則給出提示信息。
輸入格式
  輸入共兩行,第一行爲原串(以’.’結束),第二行爲命令(輸入方式參見“問題描述” 。
輸出格式
  輸出共一行,爲修改後的字符串或輸出指定字符不存在的提示信息。
樣例輸入
This is a book.
D s
樣例輸出
Thi is a book.
輸入輸出樣例解釋
  命令爲刪去s,第一個在字符中出現的s在This中,即得到結果。
#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	getline(cin,s);
	char a,b,c;
	cin>>a;
	int n=s.length();
	int t;
	if(a=='D')//刪除 
	{
		cin>>b;
		t=0;
		for(int i=0;i<n;i++)
		{
			if(s[i]==b)
			{
				break;
			}
			t++;
//        cout<<s[i];
		}
//		cout<<t<<endl;
        for(int i=t+1;i<n;i++)
        {
        	s[i-1]=s[i];	
        }
		n--;
        for(int i=0;i<n;i++)
        cout<<s[i];
	}
	if(a=='I')//插入 
	{
		cin>>b>>c;
		t=0;
		for(int i=0;i<n;i++)
		{
			if(s[i]==b)
			{
				t=i; 
			}
//        cout<<s[i];
		}
//	     cout<<t<<endl;
        for(int i=n-1;i>=t;i--)
        {
        	s[i+1]=s[i];	
        }
		n++;
		s[t]=c;
        for(int i=0;i<n+1;i++)
        cout<<s[i];
//This is a book.
//I s d
	}
	if(a=='R')//替換 
	{
		cin>>b>>c;
		t=0;
		for(int i=0;i<n;i++)
		{
			if(s[i]==b)
			{
				s[i]=c;
			}
       }
        for(int i=0;i<n;i++)
        cout<<s[i];
//This is a book.
//R s d
	}
} 


  算法訓練 字符串編輯  
時間限制:1.0s   內存限制:512.0MB
    
問題描述
  從鍵盤輸入一個字符串(長度<=40個字符),並以字符 ’.’ 結束。編輯功能有:
  1 D:刪除一個字符,命令的方式爲: D a 其中a爲被刪除的字符,例如:D s 表示刪除字符 ’s’ ,若字符串中有多個 ‘s’,則刪除第一次出現的。
  2 I:插入一個字符,命令的格式爲:I a1 a2 其中a1表示插入到指定字符前面,a2表示將要插入的字符。例如:I s d 表示在指定字符 ’s’ 的前面插入字符 ‘d’ ,若原串中有多個 ‘s’ ,則插入在最後一個字符的前面。
  3 R:替換一個字符,命令格式爲:R a1 a2 其中a1爲被替換的字符,a2爲替換的字符,若在原串中有多個a1則應全部替換。
  在編輯過程中,若出現被改的字符不存在時,則給出提示信息。
輸入格式
  輸入共兩行,第一行爲原串(以’.’結束),第二行爲命令(輸入方式參見“問題描述” 。
輸出格式
  輸出共一行,爲修改後的字符串或輸出指定字符不存在的提示信息。
樣例輸入
This is a book.
D s
樣例輸出
Thi is a book.
輸入輸出樣例解釋
  命令爲刪去s,第一個在字符中出現的s在This中,即得到結果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章