面试题总结9
来源:互联网 发布:农业大数据应用 编辑:程序博客网 时间:2024/05/01 11:03
1、通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
void main(){map<char, int> flag;string str = "abcacbdeaecbfgf";string result="";for (int i = 0; i < str.length(); i++){if (flag[str[i]] == 0){result += str[i];}flag[str[i]]++;}for (int k = 0; k < result.length(); k++){cout << result[k] << endl;}}
2、通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。
要求实现函数:
void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“cccddecc” 输出:“3c2de2c”
输入:“adef” 输出:“adef”
输入:“pppppppp” 输出:“8p”
void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr){int j,k=0;char c[2];for (int i = 0; i < lInputLen; i = j+1){j = i;while (pInputStr[i] == pInputStr[j + 1]){j++;}if (j - i + 1 >= 2){sprintf(c, "%d", j - i + 1);pOutputStr[k++] = c[0];}pOutputStr[k++] = pInputStr[i];}pOutputStr[k] = '\0';}void main(){char * s = "pppppppp";char *res= new char[10];stringZip(s, 8, res);cout << res << endl;}
0 0
- 面试题总结9
- java面试题总结
- 面试题总结
- 面试题(总结)
- .NET面试题总结
- .net面试题总结
- 面试题总结
- java面试题总结
- vxworks面试题总结
- android面试题总结
- SSH面试题总结
- C++面试题总结
- SSH面试题总结
- 面试题总结
- 算法面试题总结
- java面试题总结
- android面试题总结
- java面试题总结
- java定时任务嵌套
- Activity,Fragment中onSaveInstanceState(Bundle outState)的调用时机
- spring mvc 环境搭建
- C++学习笔记 C与C++部分对照
- C++中的堆和栈
- 面试题总结9
- 解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid
- hdu 3974 Assign the task
- 多线程 调用带参数函数
- 查看linux版本的命令
- SpringMVC学习笔记
- Java学习笔记------如何为文本输入框设置下凹效果?
- php中实现精确设置session过期时间的方法
- hdu 5312 Sequence