No17、题目:在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。

凝思操作系统 Linx 6.0.90 网络配置:3种方法对比与1个关键激活步骤 本文详细解析了凝思操作系统Linx 6.0.90的三种网络配置方法(传统接口文件配置法、Systemd-networkd服务配置法和临时命令行配置法)及其适用场景,并强调了系统激活这一关键步骤对网络配置生效的重要性。通过对比分析,帮助用户根据实际需求选择最佳配置方案,提升网络配置效率和稳定性。 阅读详情
题目:在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。

分析:这道题是 2006 年 google 的一道笔试题。


解题思路:

题目强调了两点:第一、需要记录字符出现的个数....第二、需要记录字符出现的次序..

两个长度为24的数组一个存储出现的顺序,一个存储字符出现的个数..

记录字符出现顺序的数组索引为顺序,存储的数据是字符-'a';

记录字符出现个数的数组索引为字符-'a',存储的数据是出现的次数..

嗯....


public class Q17 {
	public static void main(String[] args) {
		int[] sequency = new int[24];                                         //记录次序的数组
		int[] times = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};      //记录字符出现个数的数组
		int flag = 0;
		
		String s = "aaccedff";
		char[] array = s.toCharArray();
		
		for(int i = 0; i < array.length; i++)
		{
			char ch = array[i];
			
			if(times[ch-'a'] != 0)
				times[ch-'a']++;
			else
			{
				sequency[flag] = ch - 'a';
				flag ++;
				times[ch-'a'] = 1;
			}
		}
		
		for(int i = 0;i<24;i++)
		{
			if(times[sequency[i]] == 1)
			{
				flag = sequency[i];
				break;
			}
		}
		
		for(char j = 'a'; j <= 'z';j++)
		{
			if(j-'a' == flag)
			{
				System.out.println(j);
				break;
			}
		}
	}
}


Autoware.universe部署03:与Carla(二进制版)联调 本文介绍了 Autoware.universe 与 Carla 二进制版的联调过程。Autoware.universe 是一个开源的自动驾驶软件平台,而 Carla 则是一个用于自动驾驶仿真的开源工具。将这两者联调起来可以在仿真环境中测试和验证 Autoware.universe 的功能和性能,为自动驾驶系统的开发和测试提供有力支持。 阅读详情

相关推荐

MoveIt控制睿尔曼RM65机械臂:从仿真到实机的3种控制模式对比

本文详细解析了使用MoveIt框架控制睿尔曼RM65机械臂的三种核心模式:拖动规划、目标姿态规划和Python API控制,从Gazebo仿真到实机部署的完整实现路径。通过ROS环境配置、控制参数优化及实机过渡技术,为工业自动化和机器人研究提供实用指南。

710

【C语言】找出一个字符串第一个只出现一次字符

题目描述:在一个字符串找到第一个只出现一次字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。 方法一:     简单粗暴的遍历完成,只适用于字符串较小时使用,算法的时间复杂度为O(n2),因此并不推荐使用; 代码: #include #include #include #define MAX 30 int FindFirst

sofia_m的博客 1万+

LinX拷机程序深度测评:全面测试CPU浮点运算性能

我见过太多人拿着LinX跑了十分钟就说“我的CPU稳了”,然后第二天打游戏蓝屏重启……醒醒吧朋友!📌LinX只是众多压力测试工具之一。它擅长暴露浮点运算、散热设计、供电能力方面的问题,但对于以下场景覆盖不足:- 整数密集型负载(如压缩、编码)- 显存压力(GPU相关)- 磁盘I/O瓶颈- 多进程并发调度因此,完整的稳定性验证应该组合多种工具:→ 检验AVX稳定性与VRM负载→ 全面拷机→ 内存与缓存压力。

weixin_35257663的博客 744

一个字符串找到第一个只出现一次字符。如输入abaccdeff,则输出b。

public class Solution { public static void main(String[] args) { String str="abbaccdeff"; String c=""; for(int i=0;i&lt;str.length();i++){ String...

qiannuo_的博客 1010

每日一道算法题:在一个字符串找到第一个只出现一次字符。如输入abaccdeff,则输出b。

题目:在一个字符串找到第一个只出现一次字符。如输入abaccdeff,则输出b。 解题思路:对于一般字符串或整数数组是否存在某对象,或者判断对象个数问题,都可以利用hashtable来完成,这里,我们利用数组构建一个简单的hashtable,第一次遍历字符串,记录每个字符出现的次数;第二次遍历记录个数的数组,找到第一个值为1的位置对应的字符,就是本题所求的字符,代码如下: #include

jhyxss的专栏 3005

【C语言】在字符串中找出第一个只出现一次字符。如输入abaccdeff“ ,则输出 ‘b‘ 。要求时间复杂度为 O(n) 。

由于题目所给出的限制,无法用循环嵌套。 #include <stdio.h> int main() { char arr[] = "abaccdef"; int arr1[200] = { 0 };//创建一个数组,用于计算每个元素出现的个数 char* p = arr; while (*p)//这层循环用于计算每个元素出现的个数 { arr1[*p]++;/*注意:这里直接用arr内的字符对应的ASCLL码值作为 存储于arr1内的元素下标。当数组中出现重复字符时,直接就可以

qq_57123434的博客 492

一个字符串找到第一个只出现一次字符。如输入abaccdeff,则输出b

一个字符串找到第一个只出现一次字符。如输入abaccdeff,则输出b 思路:从第一个字符开始,统计个数,个数>1,不用统计这个字符了,接着统计后面

weixin_55647158的博客 575

Linx命令突破长度限制突破方法

这段代码限制了输入的长度。我们需要想办法突破他的限制。

qixusiyu的博客 636

linx操作命令

简述linx命令(一个新手的笔记)

Mr_sunbanxian的博客 1962

Linx 基本命令

Linx 基本命令

zangba9624的博客 2445

linux有0号端口吗,Linux:在端口0上绑定时会发生什么

当我尝试在端口0(linux 5.0)上绑定(2)时会发生什么?使用BSD nc:nc -l 0可以工作,并且它可以帮助我:bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0listen(3, 1) = 0accept4(3...

weixin_39787397的博客 401

Linx常见目录&文件管理命令&VI编辑器使用 介绍

Linux常见目录 文件管理部分命令 Vi编辑器的使用

GaLiCHaoFan1的博客 595

Linx常用操作命令

对操作系统进行了基本的了解,对Linux系统的常用命令进行了基本的总结和罗列,对基本的命令进行了详细的解释说明和举例。

m0_64882384的博客 2261

Linux新手必学:10个最常用的Linux命令及其使用场景

Linux作为服务器领域的主流操作系统,掌握基本的Linux命令是每个后端开发者的必备技能。很多人觉得Linux命令难学,但其实最常用的就那么几个。今天我来分享10个最常用的Linux命令,每个命令都配有详细的使用示例和实际应用场景,让你一看就懂,一学就会!

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 1万+

20 个常用 Linux 命令

今天总结几个非常常用的Linux命令,还有一个好用的运维工具云帮手其中有几个在面试中很可能问相关命令的原理,比如后台运行命令。希望对大家有所帮助,最好自己去尝试在Linux操作系统中实践一下。 1 查看目录以及权限 在windows中,使用dir查看当前目录中文件。在Linux中使用ls(list)查看当前目录文件。 windows中的dir,如下图所示 在Linux中,通常使用ls -l列出,...

yunbangshou的博客 539

Linx常用命令

Linux分类内部命令外部命令集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令Linux系统中能够完成特定功能的脚本文件或二进制程序属于Shell的一部分属于Shell解释器程序之外的命令没有单独对应的系统文件可以找到对应的文件自动载入内存,可以直接使用不可以直接使用,需要导入对应文件Shell工作流程接收用户输入的命令解释命令传递给系统内核执行命令行格式【命令字 [选项] [参数]】(英文字符区分大小写)命令字。

m0_75135871的博客 831

Linx常用的命令

lear //清屏 pwd //查看当前目录 LL //查看当前目录下的列表 LS //ls 命令显示当前目录的内容 LS -al //查看当前目录下所有的文件包括隐藏文件 cd //进到某一目录 cd/var/www/html/  cat // 查看文件内容 cat/var/log/mysqld.log more //分页查看  ps -af //查看 ps -af | gre

liangdeniu的专栏 2244

linux文件名的长度不能超过个字符串,文件名的长度可达()个字符

[单选] 文件名的长度可达()个字符。A . 1B . 无数C . 255D . 10文件名的长度可长达255个字符。为了方便人们区分计算机中的不同文件,而给每个文件设定一个指定的名称。由文件主名和扩展名组成。为文件指定的名称。为了区分不同的文件,必须给每个文件命名,计算机对文件实行按名存取的操作方式。windows突破了DOS对文件命名规则的限制,允许使用长文件名,其主要命名规则如下:(1)文件...

weixin_29419279的博客 5170

在 Linux 中修改 Apache HTTP Server(httpd)默认端口的完整指南

本文详细介绍了如何在Linux系统中修改Apache HTTP Server(httpd)的默认端口。主要包括:1) 定位配置文件(如/etc/httpd/conf/httpd.conf);2) 修改Listen指令和VirtualHost配置;3) 重启服务并验证端口监听;4) 解决常见问题(端口占用、防火墙限制、SELinux策略)。文章还强调了备份配置、HTTPS兼容性及安全注意事项,帮助用户灵活调整httpd端口以满足不同需求。通过系统日志可快速排查配置问题。

专注于与编程相关的知识内容分享 1861

linux查看端口状态相关命令

netstat netstat 命令应用是比较频繁的,比如查看端口占用啦,查看端口进程啦,这些时候都是有必要的。 netstat命令各个参数说明如下:   -t : 指明显示TCP端口   -u : 指明显示UDP端口   -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)   -p : 显示进程标识符和程序名称,每一个套接字/...

gao_yuwushengchu的博客 705

基于微信小程序的学生寝室管理系统(源码、论文、说明文档、数据库文档).zip

论文、开发文档、数据文档、源码个人经导师指导并认可通过的高分设计项目,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。

上一篇: Np16、输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
下一篇: No、18 (数组):需要再看
whatsname
博客等级 码龄15年 0粉丝 33原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值