程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-ACM編程題,找出敏感詞串,並刪除,要求時間和空間效率很高,我寫的程序通不過,

c++-ACM編程題,找出敏感詞串,並刪除,要求時間和空間效率很高,我寫的程序通不過,

編輯:編程綜合問答
ACM編程題,找出敏感詞串,並刪除,要求時間和空間效率很高,我寫的程序通不過,

Censor
frog is now a editor to censor so-called sensitive words (敏感詞).

She has a long text p. Her job is relatively simple -- just to find the first occurence of sensitive word w and remove it.

frog repeats over and over again. Help her do the tedious work.

Input
The input consists of multiple tests. For each test:

The first line contains 1 string w. The second line contains 1 string p.

(1≤length of w,p≤5⋅106, w,p consists of only lowercase letter)

Output
For each test, write 1 string which denotes the censored text.

Sample Input
abc
aaabcbc
b
bbb
abc
abSample Output
a

ab

    上面是題目,大致要求:
    W串是可疑串,P是輸入串,在P中將出現的W串刪除,然後輸出P串;
    下面是我寫的代碼:
    #include<iostream>

#include
using namespace std;

int main()
{
string s1,s2; //s1用於做可疑串,s2用於做輸入串
while(cin>>s1)
{
cin>>s2;

    while(-1!=s2.find(s1))  //s2字符串中存在可疑串 
    {

        s2.erase(s2.find(s1),s1.size());
    }
    cout<<s2<<endl;
}

return 0;

}
圖片說明
求大神編寫一個C++程序,運行時間很低的程序,謝謝各位大牛了;

最佳回答:


建議你問這類時空要求高的ACM問題時把題目要求的時限和空間也說出來,這樣也方便別人根據要求選擇合適的算法。
這道題屬於字符串匹配問題,你可以看看**KMP算法**,如果時間還是達不到的話就用**Boyer-Moore算法**吧。代碼就自己搞定喽,做ACM還是盡量不要看別人的代碼比較好

u010556875
rl529014
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved