zoukankan      html  css  js  c++  java
  • 删除字符串中出现次数最少的字符

    在公交车上看一博客实现删除字符串中出现次数最少的字符,认为里面使用数组来作为hash很好,所以我就自己实现一遍。

    要求:实现删除一个字符串中出现次数最少的字符。输出删除后的字符,要求安装原来顺序输出。假设出现次数一样,则都删除。

    比如:abcabc 则所有删除,输出Null。

                aabbccddd 则输出 ddd

    代码:

    char* DeleteLeastString(char* desStrint)
    {
    	if (desStrint == NULL)
    	{
    		return NULL;
    	}
    	char* crtn = new char[len];    //存储输出字符,注意是new
    	char* ctemp = crtn;
    	char* ctempDes = desStrint;
    	int min = len                  //记录最少出现次数
    	int len = 0;
    	int hash[256] = {0};           //下面标为key,值为value(次数)
    	while(*ctempDes) //获取字符个数,并填充hash表
    	{
    		++hash[(int)*ctempDes];
    		ctempDes++;
    		len++;
    	}
    	ctempDes = desStrint;
    
    	while(*ctempDes) //找出字符出现最少次数的值
    		if (min > hash[(int)*ctempDes++])
    			min = target;
    
    	ctempDes = desStrint;
    	while(*ctempDes)//输出删除后的字符串
    	{
    		if (min < hash[(int)*ctempDes])
    			*ctemp++ = *ctempDes++;
    		else
    			ctempDes++;		
    	}
    	*ctemp = '';
    	return crtn;
    }


    我相信,肯定有比我更好的实现方法,知道的告知一声,谢谢。



  • 相关阅读:
    虚拟机下修改ip配置
    php cli 下 php.ini 配置
    centos 默认php 版本太低移到高版本的办法
    liux 防火墙以及开关
    [POI2006]OKR-Periods of Words(KMP)
    KMP
    [NOI1999]生日蛋糕(搜索)
    [HAOI2008]糖果传递
    [HEOI2015]兔子与樱花(贪心)
    [POJ3694]Network(Tarjan,LCA)
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7089204.html
Copyright © 2011-2022 走看看