H面试程序(12): 输出字符串中第一个只出现一次的字母

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

题目描述:

              若字符串str为'' sbdddsbfc'',则输出 f;

              若字符串str为''aabbccdd'',则输出:字符串str中的字符都出现两次以上

 

#include<stdio.h>
#include<assert.h>
#include<memory.h>
#include<malloc.h>

int  find_first_char(char*  str)  
{
   assert(str);
   char  * phash = (char *)malloc(sizeof(int ) *256); //不能是int类型
   assert(phash);
   memset(phash, 0 , 256);
   int i = 0 ;

   // 第一遍进行映射
   while(str[i] !='\0')
   {
	   phash[str[i]] ++;
       i++;
   }

   
   //第二遍找到第一个唯一只出现一个的字母
   i = 0;
   while(str[i] !='\0')
   {
	   if(phash[str[i]] == 1)
           return i;
	   i++;
   }
   return 0;
}
int main( )
{  
	char a[ ] = "aabsbccdFCD";
	int pos = find_first_char(a);
    if( 0 != pos)
	{
	 printf("%c\n",a[pos]);
	}
	else
	printf("没有这样的字母!");
	return 0;
}



 

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

相关推荐

我花3年踩坑总结的C#上位机开发指南:从零基础到项目落地(附实战案例)

串口乱码:编码格式不匹配,一定要和设备端确认;PLC连接超时:检查IP地址和端口,确保上位机和PLC在同一网段;界面卡死:耗时操作没开线程,WinForm用BackgroundWorker,WPF用Task;数据解析错误:寄存器地址算错(Modbus地址从0还是1开始);Modbus数据丢包:加CRC校验,重要数据重发机制;WPF绑定不生效:忘记实现INotifyPropertyChanged;项目打包失败:缺少依赖DLL,用Dependency Walker检查;现场环境不兼容。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1845

查找只出现一次的字符串

在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b int find_first_str(char *string) {        if(*string==NULL)          return -1;     int i=0,j=0,count=0,location=-1; for(i=0;i<strlen(string);i++) {

linux开发 1842

SAP 对接CBS(http方式)

CLEAR:lv_xml_crc32_string. CONCATENATEcrc32_passwordcrc32_keyi_stringINTOlv_xml_crc32_string. CONDENSElv_xml_crc32_string. CALLFUNCTION'SCMS_STRING_TO_XSTRING' EXPORTING text=lv_xml_crc32_string encoding='8400' "GB...

3598

剑指Offer面试题:30.第一个只出现一次的字符

一、题目:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。要求时间复杂度为O(n)。   最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思...

weixin_33910137的博客 157

Visual Tracker Benchamark傻瓜式教程(二)

问题  1 1  在调用main.m跑TRE和SRE时,因为会生成相应的.mat数据文件,如果跑完以后发现自己算法生成的.mat文件有问题,那么要把该文件删除,待找到错误原因后,重新生成相应的.mat文件。因为程序中写的是如果已经存在了.mat文件,例如已经存在car4_STC.mat文件,即使该文件中的数据有错误,但是重新跑时会默认该文件中的数据写完,不会重新写入数据 问题  2  b

mingbujingren的专栏 9928

从Excel到Power Pivot:构建你的第一个商业智能分析模型

本文详细介绍了如何从Excel升级到Power Pivot,构建你的第一个商业智能分析模型。通过激活Power Pivot功能、导入数据、建立表关系、创建智能度量值以及打造交互式仪表盘,帮助用户高效处理百万行级别的数据,实现数据自动关联和动态分析,大幅提升商业决策效率。

weixin_30629653的博客 256

linux shell获取字符串第1个字符

str="/home/gateman" if [ ${str:0:1} = "/" ]; then echo "yes'fi ${str:0:1} 中0表示从第几个字符开始,1表示截取多长 转载于:https://www.cnblogs.com/nvd11/archive/2013/04/02/2996890.html...

weixin_30302609的博客 5322

【入门篇】第五章 第一次与 AI Agent 交互

本文介绍了OpenClaw中最基本的用户与AI Agent交互方式,剖析了Agent和Gateway两个核心组件的作用,通过简单示例展示了从用户请求到结果返回的完整执行流程,说明了最小交互过程对验证系统可用性的重要意义,为后续学习复杂任务执行机制奠定基础。

lanyv的博客 512

Linux系统学习:每日linux命令2 echo(在标准输出中显示输入的字符串)

linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 echo 功能说明:在显示器上显示一段文字,一般起到一个提示的作用。echo 命令用来在标准输出中显示输入的字符串。语   法:echo [-ne][字符串]或 echo [--help][--version] 其中选项...

weixin_42072280的博客 3189

OpenWRT端口转发与NAT环回冲突的排查与解决

本文详细解析了OpenWRT路由器中端口转发与NAT环回功能冲突导致的内网访问故障。通过生活化类比阐明两者工作原理,提供从基础诊断到内核参数调整、LuCI选项配置及手动编写iptables规则的多套解决方案,并给出进阶排查思路,帮助用户彻底解决内网无法通过公网地址访问服务的常见问题。

weixin_29243279的博客 507

机器学习: 共轭梯度算法(PCG)

今天介绍数值计算和优化方法中非常有效的一种数值解法,共轭梯度法。我们知道,在解大型线性方程组的时候,很少会有一步到位的精确解析解,一般都需要通过迭代来进行逼近,而 PCG 就是这样一种迭代逼近算法。 我们先从一种特殊的线性方程组的定义开始,比如我们需要解如下的线性方程组: Ax=bAx=b 这里的 A(n×n)A(n×n) 是对称,正定矩阵, b(n×...

weixin_30807677的博客 3181

H面试程序(28):字符串处理转换

//2 字符串处理转换 //问题描述: //在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成, //其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词); //找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列), //然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次; //如果整个输入的字符串

linuxlinuxlinuxlinux的专栏 1347

YOLOv11改进 - 卷积Conv | RFAConv:感受野注意力卷积动态调整感受野,提升小目标检出精度

本文介绍了感受野注意力卷积(RFAConv)及其在 YOLOv11 中的结合。空间注意力虽广泛应用但有局限,RFAConv 是将空间注意力与卷积操作融合的新型注意力机制,通过强化感受野空间特征关注、解决卷积核参数共享挑战、增强大尺寸卷积核处理能力等策略优化卷积核功能。它有基于 Group Conv 和 Unfold 两种实现方式,实验表明前者性能更好。我们将 RFAConv 集成进 YOLOv11,在数据集实验证明了方法优越性 。

魔改工程师的博客 1220

程序员面试宝典 8.2 典型递归问题: 面试例题1: 输入两个字符串,比如 abdbcc 和 abc, 输出第二个字符串在第一个字符串中的连接次序。即输出 125, 126, 145, 146.

程序员面试宝典  8.2 典型递归问题: 面试例题1: 输入两个字符串,比如 abdbcc 和 abc, 输出第二个字符串在第一个字符串中的连接次序。即输出 125, 126, 145, 146. 【好久木有做过题了,初看,木有看懂,敲了一遍,木有输出。仔细一看,修改如下:】 原因: 先找到  子串 在 父串 中所在位置:             1

1878

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串"字母,空格,数字,其他字符"的个数和行数....

#include #include using namespace std;/*题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。*/voidcount() {//统计个数.int letters = ;int spaces = ;int digit = ;int others = ;char curChar;//注意的是,对(一行中)逐个字符进行读取时,'\n'对应ASCI...

weixin_35936248的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

go语言面试题:输入一段英文字符串,找出重复出现次数最多的字母

点击个人博客,查看更多文章https://elonjelinek.github.io/ package main import ( &quot;bufio&quot; &quot;os&quot; &quot;fmt&quot; &quot;strings&quot; ) func main() { reader := bufio.NewReader(os.Stdin)

Charliewolf的博客 4402

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C语言实现将字符串中大写字母转换为小写字母(附带源码)

C语言实现将字符串中大写字母转换为小写字母(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1504

只保留字符串中的字母,逆序输出(360测试实习生面试)

import java.util.Scanner; public class StringReverse { public static void main(String[] args) { System.out.println("请输入字符串:"); Scanner sc = new Scanner(System.in); ...

qiannuo_的博客 638

对一个字符串里的字母倒序,别的字符保持原位不变

前几天去某个公司面试也遇到类似的问题,现用c++写了个简单的 C/C++ code <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include stdio.h>#include string

在水一方 1268

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

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

weixin_39557402的博客 435

H面试程序(8):不含重复字母的字符串的全排列

#include inline void Swap(char& a, char& b) { char temp = a; a = b; b = temp; } void Perm(char list[], int k, int m) { /*生成list [k:m ]的所有排列方式 */

linuxlinuxlinuxlinux的专栏 1010

字符串和格式化输入输出(基础学习),java高级开发面试总结

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。最后祝愿各位身体健康,顺利拿到心仪的offer!由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_84435490的博客 777

H面试程序(26):判断字符串是否定回文字符串

所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。比如"level" 、 “aaabbaaa” 题目:判断一个字符串是否为回文 解法:两端扫描 #include #include int huiwen( int high, int low , char * a) //从两边扫描, num是一个中点位置 { assert(a);

linuxlinuxlinuxlinux的专栏 1152

Java九九乘法表/冒泡排序倒叙输出

今天面试,HR给了一份笔试题,1.写一个9*9乘法表并输出,2.给了一个int类型的数组,使用冒泡排序倒叙输出。哥们觉得So easy,提笔就写。当时心里想着就是不能保证结果正确,但是原理是对的。但是面试官看了,就开始说我的程序这有问题那有问题,具体问题我就不说了。当时小弟有心反驳,但却没有任何恰当理由,找个当时真想找个地缝钻进去。不过当时面试官有一句话我铭记于心,写程序最好不要让编译器去帮你排错,

IBMQUSTZJ的专栏 5610
上一篇: H面试程序(11): 判断字符串是否包含子串问题
下一篇: H面试程序(14): 快速排序法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值