​LeetCode解法汇总2451. 差值数组不同的字符串

news/2024/4/18 18:16:37

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个字符串数组 words ,每一个字符串长度都相同,令所有字符串的长度都为 n 。

每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 差值整数数组 difference[i] ,其中对于 0 <= j <= n - 2 有 difference[i][j] = words[i][j+1] - words[i][j] 。注意两个字母的差值定义为它们在字母表中 位置 之差,也就是说 'a' 的位置是 0 ,'b' 的位置是 1 ,'z' 的位置是 25 。

  • 比方说,字符串 "acb" 的差值整数数组是 [2 - 0, 1 - 2] = [2, -1] 。

words 中所有字符串 除了一个字符串以外 ,其他字符串的差值整数数组都相同。你需要找到那个不同的字符串。

请你返回 words中 差值整数数组 不同的字符串。

示例 1:

输入:words = ["adc","wzy","abc"]
输出:"abc"
解释:
- "adc" 的差值整数数组是 [3 - 0, 2 - 3] = [3, -1] 。
- "wzy" 的差值整数数组是 [25 - 22, 24 - 25]= [3, -1] 。
- "abc" 的差值整数数组是 [1 - 0, 2 - 1] = [1, 1] 。
不同的数组是 [1, 1],所以返回对应的字符串,"abc"。

示例 2:

输入:words = ["aaa","bob","ccc","ddd"]
输出:"bob"
解释:除了 "bob" 的差值整数数组是 [13, -13] 以外,其他字符串的差值整数数组都是 [0, 0] 。

提示:

  • 3 <= words.length <= 100
  • n == words[i].length
  • 2 <= n <= 20
  • words[i] 只含有小写英文字母。

解题思路:

* 解题思路:
* 也许我想复杂了,所以想了一个相对复杂一点的方案。
* 遍历words,每个word都生成一个唯一的key字符串,格式为1_11_这样,其中1和11代表差值。
* 然后添加到map中,其中key为上面生成的,value就代表次数。
* 那么value=1的就是我们要找的那个字符。

代码:

#include <iostream>
#include <map>
#include <list>
#include <vector>
#include <map>
#include "Solution2451.h"/*** 思路:*/
string Solution2451::oddString(vector<string> &words)
{const char *chars = words[0].data();map<string, int> wordMap;map<string, string> wordMap2;for (int i = 0; i < words.size(); i++){string builder;const char *chars = words[i].data();// for (int j = 1; j < sizeof(chars); j++)for (int j = 1; j < words[i].size(); j++){builder.append(to_string((chars[j] - 'a') - (chars[j - 1] - 'a')));builder.append("_");}wordMap[builder] = wordMap[builder] + 1;wordMap2[builder] = words[i];}map<string, int>::iterator it;for (it = wordMap.begin(); it != wordMap.end(); it++){if (it->second == 1){return wordMap2[it->first];}}return "";
}


http://www.ppmy.cn/news/84073.html

相关文章

深度学习神经网络学习笔记-多模态方向-11-Deep Voice: Real-time Neural Text-to-Speech

摘要 本文提出Deep Voice&#xff0c;一种完全由深度神经网络构建的生产质量文本到语音系统。Deep Voice为真正的端到端神经语音合成奠定了基础。该系统由五个主要的构建模块组成:用于定位音素边界的分割模型、字素到音素的转换模型、音素时长预测模型、基频预测模型和音频合成…

SpringBoot Controller层传入的参数进行解密

一、 应用场景 当和第三方应用对接系统的时候&#xff0c; 可能别人的参数加密方式和我们的不相同&#xff0c;那就需要和对方沟通好他们的接口参数是如何加密的&#xff0c;达成一致后才方便后续的工作开展。 二、示例说明 采用Springboot 项目开发&#xff0c;先在compone…

10 工具Bootchart的使用(windows)

Bootchart的使用方法&#xff08;windows&#xff09; 下载bootchart.jar并拷贝到windows, 然后保证windows也安装了open jdk 1.8; 下载地址&#xff1a;https://download.csdn.net/download/Johnny2004/87807973 打开设备开机启动bootchart的开关: adb shell touch /data/boo…

微信小程序---使用云数据库实现登录功能

实现效果 在数据库找不到登录信息时弹出提示框 一、开通云开发平台并创建数据表 进入微信官方文档按步骤操作即可 二、登录界面及样式 login.wxml如下&#xff1a; <view id"total"> <image src"../../images/user_cog_green.png"></im…

18-02 数据库设计核心要点

概念结构设计 通过对用户需求进行综合、归纳和抽象&#xff0c;形成独立于具体数据库管理系统的概念模型把需求分析阶段得到的应用需求&#xff0c;抽象成概念模型连接现实世界和信息世界的桥梁好的概念结构设计 能真实、充分的反映现实世界要易于理解要易于修改 基本概念 …

【Linux高级 I/O(4)】异步 IO实例及其优化(全文代码)

异步 I/O 在 I/O 多路复用中&#xff0c;进程通过系统调用 select()或 poll()来主动查询文件描述符上是否可以执行 I/O 操作。 而在异步 I/O 中&#xff0c;当文件描述符上可以执行 I/O 操作时&#xff0c;进程可以请求内核为自己发送一个信号。之后进程就可以执行任何其它…

AIGC和ChatGPT推进百度、阿里、腾讯、华为大模型技术创新

AIGC | PC集群 | PC Farm | GPU服务器 生成式AI | Stable Diffusion | ChatGPT 2022 年 12 月&#xff0c;OpenAI 推出了 ChatGPT&#xff0c;这是一种高性能计算的大型语言生成模型。它的出现推动了人机对话技术的发展&#xff0c;并在网络上引起了极大的关注。目前&#xff…

Qt复制文件到C盘目录超级管理员权限和避免VirtualStore功能

本以为复制文件是个很简单的事情&#xff0c;没想到居然需要超级管理员权限。 网上一搜有好多教程&#xff0c;例如这个&#xff1a; 给Qt程序添加管理员权限总结&#xff08;一定有你没见过的方式&#xff09;_qt管理员权限_百里杨的博客-CSDN博客当我们写了一个Qt程序&…

集合框架底层数据结构

Collection 1. List Arraylist : Object 数组 Vector : Object 数组 LinkedList : 双向循环链表 2.Set HashSet (无序&#xff0c;唯一) : 基于HashMap 实现的&#xff0c;底层采用HashMap 来保存元素 LinkedHashSet : LinkedHashSet 继承于 HashSet , 并且其内部是通过Linked…

详解创建共享邮箱的步骤和方法

共享邮箱是一个类似于分发列表 (DL) 的组&#xff0c;它具有由组织内的一组用户共享的公共电子邮件地址。与 DL 不同&#xff0c;外部成员不能添加到共享邮箱&#xff0c;并且不支持流。发送到共享邮箱的电子邮件不会出现在个人用户的邮箱中&#xff0c;从而减少电子邮件重复。…

Linux - 第18节 - 网络基础(传输层)

1.传输层 在学习HTTP等应用层协议时&#xff0c;为了便于理解&#xff0c;可以简单的认为HTTP协议是将请求和响应直接发送到了网络当中。但实际应用层需要先将数据交给传输层&#xff0c;由传输层对数据做进一步处理后再将数据继续向下进行交付&#xff0c;该过程贯穿整个网络协…

[Java基础]基本概念(下)运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用

在上一篇文章[Java基础]基本概念(上)(标识符,关键字,基本数据类型)_小王师傅66的博客-CSDN博客中&#xff0c;我们学习了Java基础基本概念中的标识符&#xff0c;关键字&#xff0c;基本数据类型。这篇文章&#xff0c;我们将学习&#xff1a;运算符,表达式和语句,分支,循环,方…

030:Mapbox GL设置渐变矢量矩形

第030个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载数据,构成渐变的矩形。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共109行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:…

ESP32CAM---利用Vscode阅读源码

前言 &#xff08;1&#xff09;首先&#xff0c;我在此吐槽一些&#xff0c;arduino平台的代码阅读功能&#xff0c;是真滴垃圾。气死我了。配置这玩意搞了半天&#xff0c;还没搞好。 &#xff08;2&#xff09;最后我决定使用Vscode阅读arduino的代码。arduino IDE负责编译程…

真题详解(快速排序)-软件设计(八十一)

原创 真题详解(语法分析输入记号流)-软件设计&#xff08;八十)https://blog.csdn.net/ke1ying/article/details/130791934 COCOMOII基于____进行估算&#xff1f; 答案&#xff1a;源代码行数 2、0~7有8个索引&#xff0c;0~4是5个直接索引&#xff0c;磁盘块数据大小1kb字节…

淡季不淡,满帮一季度净利创历史新高的背后原因是什么?

进入五月&#xff0c;经济复苏的成果越发体现在很多基础行业的表现中。经济的“大动脉”货运行业&#xff0c;也迎来一份新答卷。 北京时间5月22日美股盘前&#xff0c;数字货运平台满帮集团&#xff08;NYSE:YMM&#xff0c;简称&#xff1a;满帮&#xff09;&#xff0c;发布…

消息中间件——RocketMQ(与Kafka、RabbitMQ的对比)

RocketMQ、Kafka、RabbitMQ的对比 1.ActiveMQ:Apache出品的比较老的消息中间件 2.Kafka:支持日志消息,监控数据,是一种高吞吐量的分布式发布订阅消息系统,支持百万级别的单机吞吐量,但是可能会造成数据丢失 3.RocketMQ:阿里在使用Kafka之后发现了它的消息系统主要定位于日志传…

21天学会C++:Day4----函数重载

CSDN的uu们&#xff0c;大家好。这里是C入门的第四讲。 座右铭&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;C专题 目录 1. 知识引入 2. 函数重载的知识点 2. 为什么C语言不支持函数重载而C支持呢&…

PoseiSwap:为何青睐 Layer3?又为何选择 Celestia 作为技术伙伴?

自 PoseiSwap 在 Nautilus Chain 上线后&#xff0c;该 DEX 的整体市场进展十分顺利。我们看到&#xff0c;其不仅在 4 月&#xff0c;以 1000万美元的估值&#xff0c; 获得了来自于 Zebec Labs 的首轮 150 万美元的融资。而在本月&#xff0c;在 Zebec 生态的帮助下&#xff…

视频理解学习笔记(一):双流卷积神经网络

视频理解学习笔记&#xff08;一&#xff09;&#xff1a;双流卷积神经网络 两句话总结双流卷积神经网络论文概览方法详解Spatial stream ConvNetTemporal stream ConvNet测试方法 光流什么是光流怎么预处理光流 数据集UCF101&#xff08;已被刷爆&#xff09;HMDB51 Experimen…