マイクロソフト社などのデータ構造+アルゴリズム面接100題-63題解


マイクロソフト社などのデータ構造+アルゴリズム面接100題(第1-100題)
63.文字列から特定の文字(文字列)を削除します.タイトル:2つの文字列を入力し、1番目の文字列から2番目の文字列のすべての文字を削除します.
例えば、「They are students.」と入力します.「aeiou」と、
削除後の最初の文字列は「Thy r stdnts.」になります.
分析:これはマイクロソフトの面接問題です.マイクロソフトのよくある面接問題では、文字列に関する問題が大きな部分を占めています.プログラムを書く操作文字列は私たちのプログラミングの基本をよく反映しているからです.
先人の解法を見て、スローポインタに対する理解を深めた.
http://blog.csdn.net/alexingcool/article/details/6786590
その後、自分で簡単なバージョンを書き、文字をインデックスに変換した後、現在の文字を削除対象のシーケンスとすばやく一致させ、削除する必要があるかどうかを判断するプロセスを省略しました. 
ここでは,削除すべき文字列がt=「there are」であると仮定し,その中の文字'e'を削除する.コードは次のとおりです.
出力結果は「thr ar」
#include<iostream>
using namespace std;
int main(void)
{
	char t[]="there are";
	int i=0,j=0;
	while(t[i]!='e' && t[i]!='\0')//     'e'     
		i++;
	j=i;i++;
	while(t[i]!='\0'){//        'e',          
		if(t[i]!='e'){
			t[j++]=t[i++];
		}
		else i++;
	}
	t[j]='\0';
	cout<<t<<endl;
	return 0;
}