OJ 系列之删除字符串中出现次数最少的字符

来源:互联网 发布:阿里云网站模板上传 编辑:程序博客网 时间:2024/05/29 14:36
题目 
描述: 
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 
题目类别: 字符串 
难度: 中级 
运行时间限制: 10Sec 
内存限制: 128MByte 
阶段: 入职前练习 
输入: 
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。 
输出: 
删除字符串中出现次数最少的字符后的字符串。 
样例输入: 
abcdd 

样例输出: 

// 删除字符串中出现次数最少的字符.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <string.h>void delete_str(char *inputStr){if(!inputStr)return;int len =  strlen(inputStr);char *outputStr = (char *)malloc(sizeof(char)*(len+1));int i = 0;int a[26];for(i=0;i<26;i++)a[i] = 0;for (i=0;i<len;i++) {a[inputStr[i]-'a'] ++;}int min = 256;for(i = 0;i<26;i++) {if(a[i]!=0 && min > a[i]) {min = a[i];}}int j = 0;for (i=0;i<len;i++) {if(a[inputStr[i]-'a']!=min) {outputStr[j] = inputStr[i];j++;}}outputStr[j] = '\0';int len1 =  strlen(outputStr);printf("%s\n",outputStr);free(outputStr);}int main(){char input[25];gets(input);//printf("%s\n",input);delete_str(input);//getchar();}


1 0
原创粉丝点击