作者 zhuyu
创建于2013-09-14 22:38:00
修改者putao
修改于2016-06-08 11:26:50
字数4256
文档摘要:华为2014笔试算法题汇总1.通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【
华2014笔试算法题汇总
1通键盘输入串写字母(a~z)组成字符串请编写字符串滤程序字符串中出现相字符非首次出现字符滤掉
字符串abacacde滤结果abcde
求实现函数:void stringFilter(const char *pInputStr long lInputLen char *pOutputStr)
输入 pInputStr: 输入字符串
lInputLen: 输入字符串长度
输出 pOutputStr: 输出字符串空间已开辟输入字符串等长
注意需完成该函数功算法中间需IO输入输出
示例
输入:deefd 输出:def
输入:afafafaf 输出:af
输入:pppppppp 输出:p
main函数已隐藏里保留户测试入口里测试实现函数调printf印输出
前方法测试保证终程序正确执行该函数实现意修改改变函数原型
定保证编译运行受影响
[cpp] view plaincopy
#include
#include
using namespace std
bool g_flag[26]
void stringFilter(const char *pInputStr long lInputLen char *pOutputStr)
{
assert(pInputStr NULL)
int i 0
if (pInputStr NULL || lInputLen < 1)
{
return
}
const char *p pInputStr
while(*p '\0')
{
if (g_flag[(*p 'a')])
{
p++
}else{
pOutputStr[i++] *p
g_flag[*p 'a'] 1
p++
}
}
pOutputStr[i] '\0'
}
int main()
{
memset(g_flag0sizeof(g_flag))
char input[] abacacde
char *output new char[strlen(input) + 1]
stringFilter(inputstrlen(input)output)
cout<