zoukankan      html  css  js  c++  java
  • [华为上机练习题]7.删除字符串中出现次数最少的字符

    题目

    描写叙述:
    实现删除字符串中出现次数最少的字符。若多个字符出现次数一样,则都删除。

    输出删除这些单词后的字符串。字符串中其他字符保持原来的顺序。

    题目类别: 字符串
    难度: 中级
    执行时间限制: 10Sec
    内存限制: 128MByte
    阶段: 入职前练习
    输入:
    字符串仅仅包括小写英文字母, 不考虑非法输入。输入的字符串长度小于等于20个字节。

    输出:
    删除字符串中出现次数最少的字符后的字符串。

    例子输入:
    abcdd

    例子输出:
    dd

    代码

    /*---------------------------------------
    *   日期:2015-06-29
    *   作者:SJF0115
    *   时间:2014
    *   题目:删除字符串中出现次数最少的字符
    *   来源:华为上机
    -----------------------------------------*/
    #include <iostream>
    #include <climits>
    #include <string>
    using namespace std;
    // 不考虑非法输入
    string DeleteMinChar(string str){
        string result = "";
        int size = str.size();
        if(size == 0){
            return result;
        }//if
        // 统计个数
        int hash[256] = {0};
        for(int i = 0;i < size;++i){
            ++hash[str[i]];
        }//for
        // 最小出现次数
        int Min = INT_MAX;
        for(int i = 0;i < size;++i){
            if(Min > hash[str[i]]){
                Min = hash[str[i]];
            }//if
        }//for
        // 删除最小出现次数
        for(int i = 0;i < size;++i){
            if(Min != hash[str[i]]){
                result += str[i];
            }//if
        }
        return result;
    }
    
    int main(){
        string str;
        //freopen("C:\Users\Administrator\Desktop\c++.txt","r",stdin);
        while(cin>>str){
            cout<<DeleteMinChar(str)<<endl;
        }//while
        return 0;
    }
    
  • 相关阅读:
    虔诚的墓主人:组合数+数据结构
    DZY Loves Math II:多重背包dp+组合数学
    集合计数 :容斥原理
    「一本通 6.6 练习 8」礼物
    [bzoj3529][Sdoi2014]数表
    [专题总结]AC自动机
    6/14考试总结
    [无用]LNC李纳川的日常NC操作
    Linux下基本操作
    [ bzoj2820] YY的GCD
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6904969.html
Copyright © 2011-2022 走看看