C/C++笔试题之删除字符串中某些字符
来源:互联网 发布:理财分红天天系统源码 编辑:程序博客网 时间:2024/06/05 17:10
问题描述:删除字符串1中所有的在字符串2中出现的字符。例如,str1="aaabbbaaacccddd",str2="ac",删除操作后"bbbddd"。
最简单的方法1的思路:对所有str2中的字符,依次取出一个字符,并在str1中扫描所有出现的相同字符,每当遇到一个相同字符时,当前字符后的所有字符从前到后都向前移动一个单位。
方法2:减少移动的次数。
#include<stdio.h>void deleteLetters(char str[], char letters[]) {for(int i=0; letters[i]; i++) {char letter=letters[i];for(int j=0,k=0; str[j]; j++)if(str[j]!=letter) { str[k++]=str[j]; }str[k]=0;}}int main(void) {char a[100], b[10];gets(a);gets(b);deleteLetters(a, b);puts(a);return 0;}
方法3:减少移动的次数,并引入哈希函数取消扫描。
#include<stdio.h>int main(void) {int i, j;int hashtable[256]={0};char str[100], substr[10];gets(str);gets(substr);for(i=0; substr[i]; i++) {hashtable[substr[i]]=1;}for(i=j=0; str[i]; i++) {if(hashtable[str[i]]!=1) {str[j]=str[i];j++;}}str[j]=0;puts(str);return 0;}
0 0
- C/C++笔试题之删除字符串中某些字符
- 删除字符串中某些特定的字符
- 可删除某些字符的最长回文字符串(2016腾讯在线笔试题)
- C 删除字符串中的字符
- 二级c语言之删除字符串中的指定字符
- C学习笔记--在字符串中删除指定的字符
- C语言实现删除字符串中特定的字符
- 从字符串中删除某个字符(C++)
- c 删除一个字符串中重复的字符
- 《c程序设计语言》读书笔记-删除字符串中匹配的字符
- C语言删除字符串中重复的字符
- 笔试题总结之字符串篇(C/C++)
- c 删除字符串中的特殊字符
- c语言删除字符串中的数字字符
- C语言删除字符串中的某个字符
- 【C语言【面试题】【笔试题】题目:在字符串中找出第一个只出现一次的字符。
- 华为笔试:删除字符串中出现次数最少的字符
- C 某些库函数中字符串处理函数的具体实现
- VS2010版快捷键
- 0091 Java线程:锁对象lock-同步问题更完美的处理方式【进阶】
- test9
- IOS切图尺寸
- Android C2DM学习——客户端代码开发
- C/C++笔试题之删除字符串中某些字符
- 输出最长的单词
- oracle wm_concat(column)函数的使用
- iOS中使用ZipArchive 压缩和解压缩文件
- 仅一行代码完成各种数据库操作,基于spring的HibernateTemplate
- 解决Qt4 在kde4下的oxygen主题下qlistwidget的不正常表现
- 甘特图实例
- 体验C#——Array类的使用
- 图的Laplacian矩阵