H面试程序(7):去掉字符串中重复的数

字符串--java面试题, 首个重复字符串,二分查找 1、题目描述 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。 测试样例: "qywyer23tdd",11 返回:y public class FirstRepeat { public char findFirstRe 阅读详情

之前的答案只能把字符串中不同的数字字符显示出来,现在这个可以把重复的字符从字符串中去掉

 

#include<stdio.h>
#include<assert.h>
#include<memory.h>
#include<stdlib.h>
//50min
void RemoveAllDuplicates(char seq[ ], int n)
{   
	assert(seq);
	int * phash = (int *)malloc( 10*sizeof(int) ); //因为如果是字符串里面的数字 为0~9,只需要映射10个数字到hash的空间存放就行了
		memset(phash,0,10*sizeof(int));
	int j = 0;
	for(int i = 0; i <n-1; i++ )
	{   
		if( phash[seq[i] -'0'] == 0)  //若相应位的hash位置为0,说明未出现过 seq[i] -'0':字符到数字的转化
		{
			phash[seq[i]-'0'] = 1;
			
			if(i!=j)   //正常情况下,i!=j的情况下就是说明中间有一些数是重复的
			seq[j] = seq[i];

			j++; // j++后表示里面存放的是下一个没有出现过的数字
		}
		else   //若相应位的hash位置为1,说明出现过,i继续向后面扫描,j留在原地等待存放下一个没有出现过的数字
		{
           continue;
		}
       
		
	}
	seq[j] = '\0'; //最后一个结束符
  
}

int main()
{
    //char seq[] = { '5','3','3','8','5','6','8','\0'};   
	char seq[100];  //输入数字字符串
	gets(seq);
    RemoveAllDuplicates(seq, sizeof(seq)/sizeof(char));  //源代码直接写的8,这样写比较好   
	printf("%s", seq);
    return 0;  
}

 

 

之前的答案:

#include<stdio.h>   
#include<string.h>   
#include<stdlib.h>   
#include<assert.h>
void RemoveAllDuplicates(int seq[], int n)  
{  
    int *pHash = (int*)malloc(sizeof(int)*n);
	assert(pHash);  //判断申请空间是否成功
    memset(pHash,0,sizeof(pHash)*n);  //将申请的空间进行初始化

    
	int i; 
    for(i = 0;i < n;++i)  
	{  
       pHash[seq[i]]++;   //数组中的数出现一次就在pHash中对应位置加1  
       if(1 == pHash[seq[i]] )   //若在pHash中只出现一次,则输出,否则跳过,检查下一个数
       {  
          printf("%d/t",seq[i]);  
       }  
	}
	
    free(pHash);   
}  



int main()  
{  
    int seq[] = { 5,3,4,2,3,2,2,5};
	
    RemoveAllDuplicates(seq, sizeof(seq)/sizeof(int));  //源代码直接写的8,这样写比较好
     return 0;  
}



 

H面试程序(19): 统计出现频率的最高的K的字符串 出处:http://blog.youkuaiyun.com/v_JULY_v 我做了一些详细的注释   //copyright@yansha &&July //July、updated,2011.05.08 //题目描述: //搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的 //长度为1-255字节。假设目前有一千万个记录(这些查询串 阅读详情

相关推荐

找出字符串中第一个不重复的字母

昨天看到一个面试题,说是要在一个字符串中找到第一个不重复的字符。 初始思路如下: 扫描一遍字符串,生成一个链表,越早出现的字符越靠近链表头,最后出现的在链表尾。每次从字符串中扫描到一个字符后,在链表中搜索,找到则其计数加一,否则加入到链表尾。最后遍历这个链表,第一个出现次数为1的就是第一个不重复的字符。 改进后方法: 考虑到如果字符串很长,每次需要去链表中查询是否有此字符,因此设计一个索引

Lujp的空间 1759

实验7.3 字符串 7-8 删除重复字符

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例: ad2f3adjfeainzzzv 输出样例: 23adefijnvz #include<stdio.h> #include<string.h> int main() { char n[81]; int b[200]={0}; int len=0; while(

世界在我口袋的博客 1万+

算法面试刷题之字符串

在Java中字符串内容是不可变的,也就是说如果想对字符串做出改变,那么需要用返回值来接收新的字符串,一旦对字符串内容做出了改变,就会产生一个新的字符串实例,例如: String str="hello"; str.toUpperCase(); 虽然对str做了toUpperCase的操作,但是操作的结果是产生一个新的String,str的结果不会发生变化 依旧是hello小写,这就产生了

一只小包子的博客 1166

实验7-3-10 删除重复字符 (20分)

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例: ad2f3adjfeainzzzv 输出样例: 23adefijnvz 本题有两个思路 1先排序,后删除 2先删除,后排序 思路1 //先排序,后删除 #include<stdio.h> void sort(char a[],int len); int del_same(char a[

u014390786的博客 4238

PTA-浙大版《Python 程序设计》题目集-第3章-16 删除重复字符 (20分)

PTA-浙大版《Python 程序设计》题目集-第3章-16 删除重复字符 (20分) 本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例: ad2f3adjfeainzzzv 输出样例: 23adefijnvz t = input() s=[] for i in range(0,len(t)): s.append(t[i]) s.sort() if len(s)>=1: now = s[0] print(now

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 957

7-112 删除重复字符

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例: ad2f3adjfeainzzzv 输出样例: 23adefijnvz #include int main(void){ static char s

Money的博客 7833

SAP MM采购合同创建全解析:ME31K操作与后台逻辑

在SAP ERP的物料管理模块中,采购合同作为框架协议的核心,定义了企业与供应商之间的长期供货关系。它与采购订单不同,合同不直接产生收货或发票,而是为后续采购订单提供数据源。创建合同(事务码ME31K)时,需要区分数量合同与金额合同,并维护抬头、行项目、有效期、价格条件和税码等关键信息。SAP通过源确定机制在创建采购订单时自动匹配合同,同时审批策略、编码范围和输出类型也会影响合同的实际可用性。掌握合同创建逻辑,能有效解决采购订单无法带出合同、审批未触发、价格缺失等高频问题。从ME31K实操出发,系统梳理采购

weixin_30000735的博客 199

实验7-3-10 删除重复字符(20 分)

实验7-3-10 删除重复字符(20 分) 本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例: ad2f3adjfeainzzzv 输出样例: 23adefijnvz #include&lt;stdio.h&gt; #inclu...

你一直都在心间 2万+

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 484

【STM32】从零构建串口IAP框架:BootLoader与App双向跳转实战解析

本文详细解析了STM32串口IAP框架的构建,重点阐述了BootLoader与App双向跳转的实战原理与实现步骤。内容涵盖Flash分区规划、中断向量表重定向、通信协议设计及固件升级流程,并针对跳转失败、程序跑飞等常见问题提供了解决方案,帮助开发者掌握产品级远程升级的核心技术。

wind6的博客 838

7-60 删除重复字符 (20 分)

7-60 删除重复字符 (20 分) 本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例: ad2f3adjfeainzzzv 输出样例: 23adefijnvz 这题关键在于删除多个连续相同的字符   #i...

张雨辰的博客 3799

深入剖析STM32F103 I2C总线死锁问题及高效应对策略

本文深入剖析了STM32F103硬件I2C总线在轮询模式下发生死锁的根本原因,即硬件状态机的预取机制与软件响应速度不匹配。文章提供了高效的解决方案,包括在轮询模式下提前发送NACK/STOP信号、降低总线速度,以及治本的中断与DMA应用策略,帮助开发者根据项目需求选择最合适的方案,彻底解决这一经典硬件缺陷问题。

weixin_29184371的博客 206

Python基础2 字符串必备操作语法及 面试题:输出字符串中重复的字符,统计字符串中字符出现次数

Python 字符串常见操作及 面试题:输出字符串中重复的字符 创建字符串 name=“water_melon” 切片 name[1] ‘a’ name[0: -1] 第一个到倒数第一个,不包含倒数第一 ‘water_melo’ 索引 name.index(‘e’,2) 获取name字符串中的第二个e 的索引 7 若无则报错not found ​ name.find(‘e’,2)...

YangYangRun的博客 1302

Gitlab+Jenkins+Docker+Harbor+K8s+Rancher集群搭建CICD平台

本文以诺依项目为例详细记录了Kubernetes集群的部署过程以及配套DevOps环境的搭建。主要内容包括:1) 配置8个节点的软硬件环境;2) 基础环境准备(网络、防火墙、Docker等);3) 三节点Kubernetes集群部署;4) GitLab代码仓库安装;5) Harbor私有镜像仓库搭建;6) Jenkins持续集成工具配置;7) 基于若依项目的CI/CD实践;8) Rancher集群管理工具部署。

hickman2023的博客 1206

KEPServerEX物联网网关(IoT Gateway)REST客户端代理(非原创)

(中文版)资料来源于【OPC-KEPServerEX学习KEPWare交流】905485143群的【455196383】【零下一度】 一。KEPServerEX物联网网关REST客户端代理演示 在KSE中,首先构建一个带有通道/设备/标签的模拟器系统。 例如,下面是三个随机项目。 直接到IoT网关插件,添加新代理。 从类型列表中选择REST Client。 终结点...

-雲飛兄-博客 5809

2025高频面试算法总结篇【字符串】

2025高频面试算法总结篇【字符串】

高朗的博客 1377

车载软件架构 —— AUTOSAR Vector SIP包(三)

### 上一篇文章中介绍了AUTOSAR基础软件供应商Vector公司的开发工具链,本文将继续介绍Vector公司的AUTOSAR产品。 ### -> 1、Vector SIP包中的StartApplication ### -> 2、StartApplication如何开始使用

Soly_kun的博客 831

#2 判断一个字符串是否包含重复字符

「Google面试题」 【题目】 判断一个字符串是否包含重复字符。例如:“good”就包含重复字符‘o’,而“abc”就不包含重复字符 【题目分析】 对字符串进行遍历,统计每一个字符的个数,如果不为1则跳出遍历并返回True 【解答】 1 #!/Users/minutesheep/.pyenv/shims/python 2 # -*- coding: utf-8...

ab420036723的博客 826

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java找重复字符串_在java中怎样查找重复字符串

在一段java编程代码中,字符串是不可缺少的一个要素,属于java中的基础知识,字符串不仅在java面试题中会出现,在编写代码时更要掌握怎样使用字符串。在前面我们也学习过关于字符串截取的知识,你应该有所掌握吧、格式化字符串也是比较重要的内容,今天我们学习怎样查找重复字符串,在实际的工作中也会遇到查找重复字符串的需要。先看一个在java中查找重复字符串的例子,为大家提供一个思路:先循环整个字符串,用...

weixin_31642733的博客 6263

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java找重复字符串_Java程序查找字符串的重复字符

解决这个问题的标准方法是从String中获取字符数组,遍历它并构建一个包含字符及其计数的Map。然后遍历该Map并打印出现不止一次的字符。所以你实际上需要两个循环来完成这项工作,第一个循环来构建地图,第二个循环来打印字符和计数。查看下面的例子,只有一个名为printDuplicateCharacters()的静态方法,它可以同时执行这两项工作。我们首先通过调用toCharArray()从Strin...

weixin_27787297的博客 2216

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java字符串查找第一个不重复字符_如何在字符串中找到第一个不重复的字符

编写一个Java程序来查找一个字符串中第一个非重复的字符,这是在编程测试中很常见的一个问题,因为字符串处理在程序员面试中是一个普遍的话题。面试前最好是准备好一些熟知的编程问题,例如使用递归反转字符串,或者检查一个字符串是否是回文(即正反读顺序一致)。查找第一个非重复字符的问题也是在同一个范畴。在给出解决方案之前,我们先来弄懂这个问题。我们需要编写一个函数,这个函数接受一个字符串作为参数,并返回第一...

weixin_34547883的博客 905

c++如何让字符串重复输出_几道 BAT 算法面试中经常问的字符串问题

String 作为最常见的编程语言类型之一,在算法面试中出现的频率极高。1. 验证回文串题目来源于 LeetCode 第 125 号问题:验证回文串。这道题目是 初级程序员 在面试的时候经常遇到的一道算法题,而且面试官喜欢面试者手写!题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:"Am...

weixin_39557402的博客 435

leetcode 面试题 08.07.无重复字符串的排列组合

/* *@v7fgg *执行用时 :79 ms, 在所有 Java 提交中击败了7.50%的用户 *内存消耗 :47.8 MB, 在所有 Java 提交中击败了100.00%的用户 *2020.06.08 */ class Solution { List<String> list=new ArrayList<>(); Set<Character> yongguo=new HashSet<>(); String s="";

zhuruihe2014的博客 1003

【JavaScript】面试题:重复输出一个给定的字符串

其实这是可以作为一道很好的面试题,可以考察开发人员的综合能力。 面试题: 重复输出一个给定的字符串( str 第一个参数)n 次 ( num 第二个参数),如果第二个参数 num 不是正数的时候,返回空字符串。function repeatStringNumTimes(str, num) { return str; } repeatStringNumTimes("abc", 3);

程序猿开发日志【学习永无止境】 2237
上一篇: H面试程序(4):翻转句子中单词的顺序 .
下一篇: H面试程序(27):字串转换
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值