文档章节

1 查找字符串中第一个只出现一次的字符

 秦时小
发布于 2016/10/11 22:24
字数 346
阅读 34
收藏 0

/*
* 找出一个字符串中第一个只出现一次的字符。
思路:
 假设字符是ASCII字符,占一个字节,则最多为256个字符,用一个标记数组book[256]来记录每个字符出现的次数,最后遍历这个标记数组,找到第一个元素值为1的数据的下标值,这个下标就是要找的字符。
*/
 

#include<stdio.h>

char firstOne(char* p);

int main()
{
/*
	int book[256] = {0};//用来标记每个字符出现的次数,因为一个ASCII字符占一字节
	char c = '\0';//用来记录从输入读取的一个字符
	while(scanf("%c",&c)==1)//循环读取输入的字符串
	{
		int i = (int)c;
		book[i]++;
	}
	for(int i = 0;i<256;i++)
	{
		if(book[i]==1)
		{
			printf("%c",(char)i);
			break;
		}
	}
*/
	char* str = "abaccdeff";
	printf("%c",firstOne(str));
	return 0;
}


char firstOne(char* str)
{
	int book[256] = {0};//用来标记每个字符出现的次数,因为一个ASCII字符占一字节
	while((*str)!='\0')//循环读取输入的字符串
	{
		int i = (int)(*str);//将字符强转为int下标
		book[i]++;//出现一次就递增一次
		str++;
	}
	//遍历数组中第一个值为1的下标值即就是第一个只出现一次的字符
	for(int i = 0;i<256;i++)
	{
		if(book[i]==1)
		{
			return (char)i;//强转回char字符
		}
	}
	return '\0';//没找到则返回'\0'
}

 

© 著作权归作者所有

粉丝 0
博文 2
码字总数 346
作品 0
西安
私信 提问
[剑指offer] 字符流中第一个不重复的字符

本文首发于我的个人博客:尾尾部落 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符...

繁著
2018/07/29
0
0
经典算法学习——第一个只出现一次的字符

这同样是剑指Offer中的很经典的一道面试题。题目描述为:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'. 一开始大家就会想到最简单的方法就是每访问到一个字符的时...

chenyufeng1991
2016/08/21
0
0
[算法总结] 13 道题搞定 BAT 面试——字符串

本文首发于我的个人博客:尾尾部落 1. KMP 算法 谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置。KMP 算法把...

繁著
2018/09/05
0
0
python模式匹配与正则表达式

python 中所有的正则表达式函数都在re模块中。 向re.complie()传入一个字符串值,来表示正则表达式,它将返回一个Regex模式对象。 Regex 对象的serch()方法查找传入的字符串,寻找该正则表达...

Linux就该这么学
07/03
8
0
oracle自带的一些基本的常用的函数

1.TO_DATE(字符串,日期格式) oracle自带函数 将字符串转化成日期处理 直接传入的util.date会,有可能与数据库的sql.date不匹配而报错 例如:SELECT TO_DATE('2008-8-8','yyyy-MM-dd') FROM ......

maskleo
2015/04/20
11
0

没有更多内容

加载失败,请刷新页面

加载更多

kibana汉化

kibana5 / 6 需要下载补丁包,https://github.com/anbai-inc/Kibana_Hanization 其中 v6 版本原生支持国际化,只需要添加资源文件并且配置即可 kibana7 v7版本官方内置汉化资源,在配置文件 ...

细肉云吞
16分钟前
4
0
spring boot 自定义日志 log4j2

使用默认的日志在实际开发中会存在很多问题,比如备份文件名称无法自动重命名、各个等级的日志被放在一个文件中等,所以实际开发中为了更好满足我们的需求,我们一般都会自定义采用配置的方式...

雷开你的门
20分钟前
6
0
PCB设计-Allegro软件入门系列-设计参数配置(上)

前言 经历了导入网表,和放置器件后,我们就要画板子了,但是必要的设计参数也要先准备好,磨刀不误砍柴工。 《一》显示参数 这里主要设置DRC报错标志大小和飞线显示类型 (1)DRC标志可以适当...

demyar
21分钟前
5
0
js实现微博、微信分享

html <!-- 分享 --><div class="share-box"> <b style="vertical-align: middle;">分享到:</b> <a title="分享到新浪微博" class="shareSina"><span class="share-icon"></span><......

张兴华ZHero
37分钟前
6
0
创龙TMS320DM8168浮点DSP C674x + ARM Cortex-A8的CPU、NAND FLASH、NOR FLASH

TL6678-EasyEVM是广州创龙基于SOM-TL6678核心板而研发的一款多核高性能DSP开发板。开发板采用核心板+底板方式,底板采用沉金无铅工艺的四层板设计,尺寸为200mm*106.65mm,它为用户提供了SOM...

Tronlong创龙
41分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部