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;
    }


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



  • 相关阅读:
    WPF的模版
    AvalonDock结合MVVM模式的应用
    A Diagram Designer
    WPF Canvas小例子
    WPF ListView的使用及Linq to XML练习
    httpclient发送接受请求
    json序列化以及反序列化存在多个对象时候的处理
    json序列化
    wpf数据绑定
    wpf之WrapPanel与StackPanel
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7089204.html
Copyright © 2011-2022 走看看