zoukankan      html  css  js  c++  java
  • 004串重量 (keep it up)

    设计算法并写出代码移除字符串中反复的字符,不能使用额外的缓存空间。

    注意: 能够使用额外的一个或两个变量,但不同意额外再开一个数组拷贝。

    简单题直接上代码:

    #include <stdio.h>
    #include <string.h>
    
    void remove_duplicate(char vStr[])
    {
    	int Len = strlen(vStr);
    	if (!Len) 
    	{
    		printf("the string is NULL
    ");
    		return ;
    	}
    	
        int Count = 0;
    	for (int i=0; i<Len; ++i)
    	{
    		if (vStr[i] != '')
    		{
    			vStr[Count++] = vStr[i];
    			for (int k=i+1; k<Len; ++k)
    			{
    				if (vStr[i] == vStr[k])
    				{
    					vStr[k] = '';
    				}
    			}
    		}
    	}
    	vStr[Count] = '';
    }
    
    void remove_duplicate2(char vStr[])
    {
    	int Len = strlen(vStr);
    	if (!Len) 
    	{
    		printf("the string is NULL
    ");
    		return ;
    	}
    
    	bool Visited[256];
    	memset(Visited, 0, sizeof(Visited));
    
    	int Count = 0;
    	for (int i=0; i<Len; ++i)
    	{
    		if (!Visited[vStr[i]])
    		{
    			vStr[Count++] = vStr[i];
    			Visited[vStr[i]] = true;
    		}
    	}
    	vStr[Count] = '';
    }
    
    void test()
    {
    	char Str[] = "13434343435568889hhhhhhhfdcvbb";
    	remove_duplicate(Str);
    	printf("%s
    ", Str);
    }

    keep it up  那些每周写几个算法,entertainment!

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    定位
    浮动
    标准文档流
    盒模型
    CSS继承性和层叠性
    微信公众平台-信息的获取
    信息系统项目管理师-整体介绍
    Dijkstra算法 c语言实现
    windows下c语言获取程序当前的执行目录,读文件的代码片
    网络流问题,及其代码
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4713152.html
Copyright © 2011-2022 走看看