화웨이 시험-중복 문자 필터(stringFilter)

1296 단어
/*
 、    (60 ):
            (a~z)      。            ,              ,            。
     “abacacde”     “abcde”。

        : 
  void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
  
	【  】 pInputStr:       
	lInputLen:                  
	【  】 pOutputStr:      ,       ,        ;
	
	  【  】            ,        IO     
	  
		   
		  :“deefd”          :“def”
		  :“afafafaf”       :“af”
		  :“pppppppp”       :“p”
*/
#include <iostream>
using namespace std;

void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{
	bool flag[26] = {0}; 
	int j = 0;
	for(int i = 0;i < lInputLen;i++)
	{
		char temp = pInputStr[i];
		if(flag[temp - 'a'] == 0)//pInputStr[i]     .
		{
			pOutputStr[j] = temp;
			j++;//        .
			flag[temp - 'a'] = 1;
		}
	}
	pOutputStr[j] = '\0';
}

int main()
{
	char input[20] = "deefd";
	char output[20];
	stringFilter(input, 20, output);	
	cout << output << endl;

	char input1[20] = "afafafaf";
	char output1[20];
	stringFilter(input1, 20, output1);	
	cout << output1 << endl;

	char input2[20] = "pppppppp";
	char output2[20];
	stringFilter(input2, 20, output2);
	cout << output2 << endl;
	
	return 0;
}

좋은 웹페이지 즐겨찾기