删除重复字符
来源:互联网 发布:115网盘淘宝暗号 编辑:程序博客网 时间:2024/05/21 21:41
【题】
删除重复字符
背景:
输入一个长度不超过 100 的字符串,删除串中的重复字符。
输入:
输入要检查的字符串,长度不超过100个字符。例如:abacaeedabcdcd。
输出:
删除重复字符后的字符串。例如:abced。
- abacaeedabcdcd↵
- abced↵
- 111122233344455577yuyuyu↵
- 123457yu↵
【思路】
1、先申明一个长度为100的字符数组char str_src[100],用来保持输入的字符串。
然后申明另一个字符数组 char str_res[100] ,用来保持str_src中不重复的字符。(可以看出,这里并不是题目上所说的“删除”,而是用另一个数组存储不重复的字符。)
2、具体操作:
逐个扫描str_src中的字符,针对str_src[i],则检查str_res中是否存在str_src[i]。如果不存在,则把str_src[i]添加到str_res中;否则不添加。
例如:测试用例1中,str_src为“abacaeedabcdcd”,初始时,str_res中没有字符。
从i=0开始,str_src[i] = 'a',检查str_res,发现其中没有字符'a',则将'a'添加到str_res中。
i++;
这时,i=1,str_src[i] = 'b',检查str_res,发现其中没有字符'b',则将'b'添加到str_res中。
i++;
这时,i=2,str_src[i] = 'a',检查str_res,发现其中存在字符'a',则不添加。
i++;
。。。。。。
一直到str_src末尾。
【代码】
#include "stdio.h"#include "string.h"int main(int argc, char **argv){ char arr_src[100] = {'\0'};char arr_res[100] = {'\0'};gets(arr_src);int length_src = strlen(arr_src);int length_res = strlen(arr_res);int i, j;for(i = 0; i < length_src; i++){length_res = strlen(arr_res);for (j = 0; j < length_res; j++){if (arr_res[j] == arr_src[i])break;}if (j == length_res){arr_res[j] = arr_src[i];} }puts(arr_res);return 0;}
- 删除重复字符
- 删除重复字符
- 删除重复字符
- 删除重复字符
- 删除重复字符 C++
- 删除重复字符
- 删除重复字符
- 删除重复字符
- 删除重复字符
- 【C++】删除重复字符
- 删除重复字符
- 删除重复字符
- 删除重复字符
- HWOJ 删除重复字符
- 删除重复字符
- 删除字符串中重复字符
- 删除字符串重复的字符
- 删除字符串中重复字符
- 学习VoIP必须掌握的基础知识
- C语言条件编译指令
- 程序员技术练级攻略
- container_of 理解
- Linux自学笔记2 LINUX中的重要文件及服务
- 删除重复字符
- 技术创业的四个注意要点
- recovery汉化实现
- matlab 优先级
- 错误: _malloc 已经在 Libcmtd.lib 中定义, 引发的思考
- 下载二进制流图片
- 提高工作效率的工具“类”
- YII执行流程图
- 巴巴运动网学习笔记四之在Web层集成Struts2.3与Spring3.1