当前位置: 首页 > article >正文

[蓝桥杯]找到给定字符串中的不同字符

题目描述

在不考虑字符排列的条件下,对于相差只有一个字符的两个字符串,实现一个算法来识别相差的那个字符。要求如下:

  1. 当传入的字符串为 aad 和 ad 时,结果为 a

  2. 当传入的字符串为 aaabccdd 和 abdcacade 时,结果为 e

输入描述

输入两行字符串,长度均不超过 100。

输出描述:

输出一行,为相差的那个字符。

输入输出样例

示例

输入

aad
ad

输出

a

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

总通过次数: 5726  |  总提交次数: 6103  |  通过率: 93.8%

难度: 中等   标签: 新手

方法思路

题目要求找出两个字符串中相差的那个字符(两个字符串长度相差1,且只相差一个字符)。最优解法是利用​​异或运算​​的性质:

复杂度分析

示例验证

  1. ​异或特性​​:相同字符异或结果为0,任何字符与0异或结果为本身。
  2. ​核心思路​​:将两个字符串的所有字符进行异或运算,成对出现的字符会相互抵消(结果为0),最终剩下的字符就是相差的那个字符。
  3. ​优势​​:时间复杂度为O(n),空间复杂度O(1),效率高且代码简洁。
    #include <iostream>
    #include <string>
    using namespace std;int main() {string s1, s2;getline(cin, s1);  // 读取第一行字符串getline(cin, s2);  // 读取第二行字符串// 检查输入是否为空(题目要求非空,但需处理None情况)if (s1.empty() || s2.empty()) {cerr << "TypeError: str1 or str2 cannot be None" << endl;return 1;}char result = 0;// 遍历s1所有字符进行异或for (char c : s1) {result ^= c;}// 遍历s2所有字符进行异或for (char c : s2) {result ^= c;}cout << result << endl;  // 输出相差的字符return 0;
    }

    代码解释

  4. ​输入处理​​:

    • 使用getline()读取两行字符串,确保包含空格也能正确处理。
    • 检查输入是否为空,若为空则抛出TypeError(符合题目要求)
  5. ​异或运算​​:

    • 初始化result = 0
    • 遍历s1的每个字符,与result异或:相同字符会抵消(如'a' ^ 'a' = 0)。
    • 遍历s2的每个字符,再次与result异或:最终结果即为相差字符(因该字符只出现一次,无法被抵消)
  6. ​输出结果​​:

    • 直接输出result,即相差的字符。
  7. ​输入​​:aad 和 ad
    ​计算过程​​:
    'a' ^ 'a' ^ 'd' ^ 'a' ^ 'd' = ('a' ^ 'a' ^ 'a') ^ ('d' ^ 'd') = 'a' ^ 0 = 'a'
    ​输出​​:a(正确)

  8. ​输入​​:aaabccdd 和 abdcacade
    ​输出​​:e(因e仅在第二个字符串中出现一次)

  9. ​时间复杂度​​:O(n),仅需遍历两个字符串各一次。
  10. ​空间复杂度​​:O(1),仅使用常量空间。

相关文章:

[蓝桥杯]找到给定字符串中的不同字符

题目描述 在不考虑字符排列的条件下&#xff0c;对于相差只有一个字符的两个字符串&#xff0c;实现一个算法来识别相差的那个字符。要求如下&#xff1a; 当传入的字符串为 aad 和 ad 时&#xff0c;结果为 a。 当传入的字符串为 aaabccdd 和 abdcacade 时&#xff0c;结果为…...

Redis底层数据结构之字典(Dict)

Dict基本结构 Dict我们可以想象成目录&#xff0c;要翻看什么内容&#xff0c;直接通过目录能找到页数&#xff0c;翻过去看。如果没有目录&#xff0c;我们需要一页一页往后翻&#xff0c;这样时间复杂度就与遍历的O(n)一样了&#xff0c;而用了Dict我们就可以在O(1)的时间复杂…...

佰力博科技与您探讨低温介电温谱测试仪的应用领域

低温介电温谱测试应用领域有如下&#xff1a; 一、电子材料&#xff1a; 低温介电温谱测试仪广泛应用于电子材料的性能测试&#xff0c;如陶瓷材料、半导体材料、压电材料等。通过该设备&#xff0c;可以评估材料在高温或低温环境下的介电性能&#xff0c;为材料的优化和应用提…...

ubuntu之开机自启frpc

在 Ubuntu 系统中为 frpc 设置开机自启&#xff08;以 frpc -c frpc.toml 命令为例&#xff09;&#xff0c;可以通过 systemd 服务实现。以下是详细步骤&#xff1a; 创建 systemd 服务文件 sudo vim /etc/systemd/system/frpc.service 写入以下内容&#xff08;根据你的路…...

【办公类-48-04】202506每月电子屏台账汇总成docx-5(问卷星下载5月范围内容,自动获取excel文件名,并转移处理)

背景需求&#xff1a; 1-4月电子屏表格&#xff0c;都是用这个代码将EXCEL数据整理成分类成3个WORD表格。 【办公类-48-04】20250118每月电子屏台账汇总成docx-4&#xff08;提取EXCLE里面1月份的内容&#xff0c;自制月份文件夹&#xff09;-CSDN博客文章浏览阅读1.2k次&…...

对 `llamafactory-cli api -h` 输出的详细解读

llamafactory-cli 是 LlamaFactory 项目提供的命令行接口工具&#xff0c;它允许用户通过命令行参数来配置和运行大型语言模型的各种任务&#xff0c;如预训练&#xff08;PT&#xff09;、有监督微调&#xff08;SFT&#xff09;、奖励模型训练&#xff08;RM&#xff09;、基…...

基于 ZYNQ UltraScale+ OV5640的高速图像传输系统设计,支持国产替代

引 言 随着电子信息技术的不断进步&#xff0c;人工智能、医 疗器械、机器视觉等领域都在高速发展 [1] &#xff0c;工业相机 是机器视觉系统中的一部分 [2] &#xff0c;对工业相机而言&#xff0c;传 输图像的速率、传输过程的抗干扰能力是其关键&#xff0c; 工业相…...

demo_win10配置WSL、DockerDesktop环境,本地部署Dify,ngrok公网测试

win10配置WSL、DockerDesktop环境&#xff0c;本地部署Dify&#xff0c;ngrok分享测试 一、配置WSL 1.1 开启Hyper-V 安装WSL2首先要保证操作系统可以开启hyper-v功能&#xff0c;默认支持开启hyper-v的版本为&#xff1a;Windows11企业版、专业版或教育版,而家庭版是不支持…...

TablePlus:一个跨平台的数据库管理工具

TablePlus 是一款现代化的跨平台&#xff08;Window、Linux、macOS、iOS&#xff09;数据库管理工具&#xff0c;提供直观的界面和强大的功能&#xff0c;可以帮助用户轻松管理和操作数据库。 TablePlus 免费版可以永久使用&#xff0c;但是只能同时打开 2 个连接窗口&#xff…...

SQL Indexes(索引)

目录 Indexes Using Clustered Indexes Using Nonclustered Indexes Declaring Indexes Using Indexes Finding Rows Without Indexes Finding Rows in a Heap with a Nonclustered Index Finding Rows in a Clustered Index Finding Rows in a Clustered Index with …...

Axure 基础入门

目录 认识产品经理 项目团队* 基本概述 认识产品经理 A公司产品经理 B公司产品经理 C公司产品经理 D公司产品经理 产品经理工作范围 产品经理工作流程* 产品经理的职责 产品经理的分类 产品经理能力要求 产品工具 产品体验报告 原型设计介绍 原型设计概述 为…...

结构型设计模式之Decorator(装饰器)

结构型设计模式之Decorator&#xff08;装饰器&#xff09; 前言&#xff1a; 本案例通过李四举例&#xff0c;不改变源代码的情况下 对“才艺”进行增强。 摘要&#xff1a; 摘要&#xff1a; 装饰器模式是一种结构型设计模式&#xff0c;允许动态地为对象添加功能而不改变其…...

HCIP-Datacom Core Technology V1.0_3 OSPF基础

动态路由协议简介 静态路由相比较动态路由有什么优点呢。 静态路由协议&#xff0c;当网络发生故障或者网络拓扑发生变更&#xff0c;它需要管理员手工配置去干预静态路由配置&#xff0c;但是动态路由协议&#xff0c;它能够及时自己感应网络拓扑变化&#xff0c;不路由选择…...

工作自动化——工作自动提炼--智能编程——仙盟创梦IDE

工作自动化中的自动提炼、自动比对代码生成日志&#xff0c;为软件开发与项目管理带来诸多好处。 自动提炼能从复杂代码中精准提取关键信息&#xff0c;节省人工梳理时间&#xff0c;开发人员可快速把握核心逻辑&#xff0c;加速项目熟悉进程。自动比对代码则及时发现版本间差异…...

go语言学习 第 2 章:变量与数据类型

第 2 章&#xff1a;变量与数据类型 在 Go 语言中&#xff0c;变量和数据类型是构建程序的基础。理解它们的使用方式和特性&#xff0c;对于编写高效、可维护的代码至关重要。本章将详细介绍变量的声明、初始化、使用以及 Go 语言中的各种数据类型。 一、变量的声明与初始化 …...

大语言模型评测体系全解析(上篇):基础框架与综合评测平台

文章目录 一、评测体系的历史演进与技术底座&#xff08;一&#xff09;发展历程&#xff1a;从单任务到全维度评测1. 2018年前&#xff1a;单数据集时代的萌芽2. 2019-2023年&#xff1a;多任务基准的爆发式增长3. 2024年至今&#xff1a;动态化、场景化、多模态体系成型关键节…...

Spring Event(事件驱动机制)

一、Spring Event 应用场景 1. 业务解耦 当一个业务操作触发多个后续动作时&#xff0c;用事件解耦各个动作&#xff0c;避免代码耦合。 比如&#xff1a;用户注册后同时发送欢迎邮件、积分赠送、日志记录等&#xff0c;这些逻辑可以通过事件发布多个监听器异步处理。 2. 跨模…...

Fisher准则例题——给定类内散度矩阵和类样本均值

设有两类样本&#xff0c;两类样本的类内散度矩阵分别为 S 1 ( 1 1 / 2 1 / 2 1 ) , S 2 ( 1 − 1 / 2 − 1 / 2 1 ) S_1 \begin{pmatrix} 1 & 1/2 \\ 1/2 & 1 \end{pmatrix}, \quad S_2 \begin{pmatrix} 1 & -1/2 \\ -1/2 & 1 \end{pmatrix} S1​(11/2​1…...

MySQL数据库中INNODB表数据的备份与恢复

使用数据库时,其中非常重要的一块内容就是数据的安全,而保障数据安全的重要手段是数据备份与还原恢复。目前,我们主要的备份手段有逻辑备份、物理备份,逻辑备份一般适用范围很广,可以适用于解决不同版本间的备份与恢复,但一般执行时间长,而且备份占用空间大。这里介绍一…...

振动分析师(ISO18436-2)四级能力矩阵 - 简介

本文的内容绝大多数来自&#xff1a;VCAT-II Vibration Analyst - Mobius Institute相关振动分析员培训招生彩页&#xff0c;特此致谢&#xff01;内容整理参见&#xff1a;振动分析师四级能力矩阵 - 知乎。 CAT I 振动分析技术员 1.1角色画像 Collect vibration dataValida…...

生产环境MYSQL常见锁表场景

前言 锁表是我们在生产环境十分常见的问题之一&#xff0c;解决问题前需要先了解锁表产生的原因以找到解决方案&#xff0c;并制定方案以预防锁表&#xff0c;本文接下来会分别模拟元数据锁表&#xff08;MDL锁&#xff09;、行锁升级为表锁、死锁、**显示锁表 **四种锁表情形…...

结构性设计模式之Composite(组合)

结构性设计模式之Composite&#xff08;组合&#xff09; 摘要&#xff1a; Composite&#xff08;组合&#xff09;模式通过树形结构表示"部分-整体"层次关系&#xff0c;使得用户能够统一处理单个对象和组合对象。该模式包含Component&#xff08;组件接口&#x…...

Java面试八股--04-MySQL

致谢&#xff1a;感谢整理&#xff01;2025年 Java 面试八股文&#xff08;20w字&#xff09;_java面试八股文-CSDN博客 目录 1、Select语句完整的执行顺序 2、MySQL事务 3、MyISAM和InnoDB的区别 4、悲观锁和乐观锁怎么实现 5、聚簇索引与非聚簇索引区别 6、什么情况下my…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(31):そう

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(31):そう 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习(2) そう1,いAくな+さそうでう。2,なAな + そうです。3,いいです ー>よさそうです。4、x Xの状況(じょうきょう)5、みたい & ら…...

设计模式——访问者设计模式(行为型)

摘要 访问者设计模式是一种行为型设计模式&#xff0c;它将数据结构与作用于结构上的操作解耦&#xff0c;允许在不修改数据结构的前提下增加新的操作行为。该模式包含关键角色如元素接口、具体元素类、访问者接口和具体访问者类。通过访问者模式&#xff0c;可以在不改变对象…...

实验设计与分析(第6版,Montgomery著,傅珏生译) 第10章拟合回归模型10.9节思考题10.1 R语言解题

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅珏生译) 第10章拟合回归模型10.9节思考题10.1 R语言解题。主要涉及线性回归、回归的显著性、回归系数的置信区间。 vial <- seq(1, 10, 1) Viscosity <- c(160,171,175,182,184,181,188,19…...

《对象创建的秘密:Java 内存布局、逃逸分析与 TLAB 优化详解》

大家好呀&#xff01;今天我们来聊聊Java世界里那些"看不见摸不着"但又超级重要的东西——对象在内存里是怎么"住"的&#xff0c;以及JVM这个"超级管家"是怎么帮我们优化管理的。放心&#xff0c;我会用最接地气的方式讲解&#xff0c;保证连小学…...

LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 下

上部分链接&#xff1a;LeetCode 高频 SQL 50 题&#xff08;基础版&#xff09; 之 【高级查询和连接】 上 题目&#xff1a;1164. 指定日期的产品价格 题解&#xff1a; select product_id,10 price from Products group by product_id having min(change_date) > 201…...

Java并发编程:读写锁与普通互斥锁的深度对比

在Java并发编程中&#xff0c;锁是实现线程安全的重要工具。其中&#xff0c;普通互斥锁&#xff08;如synchronized和ReentrantLock&#xff09;和读写锁&#xff08;ReentrantReadWriteLock&#xff09;是两种常用的同步机制。本文将从多个维度深入分析它们的区别、适用场景及…...

Spring Boot Actuator未授权访问漏洞修复

方案1&#xff1a;在网关的配置文件里增加以下配置 management:endpoints:web:exposure:include: []enabled-by-default: falseendpoint:health:show-details: ALWAYS 方案二&#xff1a;直接在nginx配置拦截actuator相关接口 location /actuator { return 403; …...