前述
最近做的一道编程题,分享一下我的解题思路。一、题目要求
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除,输出删除这些单词后的字符串,字符串中其他字符保持原来的顺序。(输入:字符串只包含小写英文字母,不考虑非法输入,输入的字符串长度小于等于20个字节。输出:删除字符串中出现次数最少的字符后的字符串。)
二、具体思路
-
统计字符串中各个字符的数量,并且保存到数组num中
-
在num中找到出现次数大于0且最少的字符(第一次找到最少的次数和对应字符,第二次找到所有等于最少次数的字符)
-
把原字符串中出现次数最少的字符剔除并保存到strOut中,最后输出
三、代码展示
代码如下:
#include <stdio.h>
int main()
{
char strIn[20]; //保存初始字符串
char strOut[20] = {
}; //保存输出字符串
char count[20]; //保存字符串中出现次数最少的字符
char *p = strIn; //用来遍历strIn
char *q = strOut