第一个出现一次的字符

通过hash表。stl不存在hash容器,自己创建一个,共有256个字符,很简单就创建出来了

代码:

#include<iostream>
//第一个出现一次的字符
using namespace std;

char findChar(char * pString){
	if(pString == NULL)
		return '\0';
	const int tableSize = 256;
	unsigned int hashTable[tableSize] ;
	for(int i =0;i<tableSize ;i++){
		hashTable[i]=0;
	}

	char* phashKey = pString;

	while(*phashKey != '\0'){
		hashTable[*(phashKey++)] ++;
	}

	phashKey  = pString;
	while(*phashKey != '\0'){
		if(hashTable[*phashKey] == 1){
			return *phashKey;
		}
		phashKey ++;
	}
	return '\0';

}

int main()
{  char str[]="aabbfccfg";
	cout<<findChar(str);
    return 0;
}  

第一个出现一次的字符

时间: 2024-11-05 17:40:53

第一个出现一次的字符的相关文章

寻找第一个出现两次的字符

解法1: O(n^2)的效率.也就是最简单的两重循环. 解法2: 更好也更多被采用的,hash方法.定义一个256的数组就可以了. 例如:“abcadfgrtybh” 代码: 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 int main() 5 { 6 char str[64] = "abcadfgrtybh"; 7 char ch; 8 int i,j; 9

找出字符串中第一个出现次数最多的字符

找出字符串中第一个出现次数最多的字符 详细描述: 接口说明 原型: bool FindChar(char* pInputString, char* pChar); 输入参数: char* pInputString:字符串 输出参数(指针指向的内存区域保证有效): char* pChar:出现次数最多的字符 返回值: false 异常失败 true  输出成功 #include <iostream> #include <string.h> using namespace std; b

《Python CookBook2》 第一章 文本 - 每次处理一个字符 &amp;&amp; 字符和字符值之间的转换

文本 - 总结: 什么是文本Python 中的string 类型是不可变类型.文本,一个字符的矩阵,每一个单独的文本快可以被缩进和组织起来. 基本的文本操作①解析数据并将数据放入程序内部的结构中:②将数据以某种方式转化为另一种相似的形式,数据本身发生了改变:③生成全新的数据 每次处理一个字符: 任务用每次处理一个字符的方式处理字符串. 解决方案可以创建一个列表,列表的子项是字符串的字符.代码如下: >>> thelist = list('thestring') >>>

字符串中第一个出现一次的字符(Java)

正在挑战一个CrackMe的你,把需要填写的前面几位密码都正确猜出了,可是这最后一位密码,好像藏得有点深.CrackMe的作者还挑衅般的在里面藏了个.tar.gz文件,解压缩出来,里面写道你要的最后一个字符就在下面这个字符串里.这个字符是下面整个字符串中第一个只出现一次的字符. (比如,串是abaccdeff,那么正确字符就是b了)然而下面给出来的字符串好像太长太长了,单靠人力完全无法找出来.于是,你需要写一个程序代劳了.输入文件体积较大,请使用一些快速的输入输出手段,不推荐使用cin/cout

第一阶段 PHP基础.数学、字符函数库与循环

一位初学php的随堂笔记,记录自己的成长! 一.数学函数库 1.安装:数学函数库是PHPCORE的组成部分 2. (1) floor: 向下取整 (2) ceil: 向上取整 (3)round: 四舍五入 int round(number $var[,int $percision]) (4)pow :求次幂 (5)sqrt:求开平方 (6)max :求最大值 (7)min :求最小值 (8)rand :求整数随机数 (9)mt_rand:求整数更好随机数 二.流程控制语句--循环 1.什么时候用

leetCode 题解之字符串中第一个不重复出现的字符

1.题目描述 Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1. Examples:  s = "leetcode" return 0.  s = "loveleetcode", return 2. Note: You may assume the string contain only

找到第一个只出现一次字符

找到字符串中只出现一次的字符 方法:用表格记录字符串中每个字符出现的次数,遍历表格,找到计数为1的字符 #include <iostream> using namespace std; //找出第一个只出现一次的字符 char first_appear_char(char*p_str) { if (p_str == NULL) return 0; int count[256] = { 0 }; int len = strlen(p_str); char*p_temp = p_str; //用h

查找字符串中第一个没有重复出现的字符

1.     public class Simple{ 2.         public static char getChar(String text){ 3.             char c =0xff; 4.             for(int index =0;index <text.length();index ++){ 5.                 c =text.charAt(index); 6.                 if(text.indexOf(

找到第一个只出现一次的字符并返回它的位置(Python)

s = 'hellobaby' def findchar(s): for i in s: if s.count(i)==1: return i, s.index(i) m,n=findchar(s) print('第一个出现一次的字符是{},位置是{}'.format(m,n))