華為機試題1,華為機試題
題一:題目描述(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>
#include<string>
using namespace std;
int main()
{
string s;
cin>>s;
int len=s.size();
char *a=s.begin();
for(int i=0;i<len;i++)
{
for(int j=i+1;j<len;j++)
{
if(s[i]==s[j]&&s[j]!=' '&&s[i]!=' ')
s[j]=' ';
}
}
for(int k=0;k<len;k++)
{
if(s[k]==' ')
s.erase(k,1);
}
cout<<s<<endl;
return 0;
}
View Code