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

news/2024/11/16 13:25:54/

目录链接:

力扣编程题-解法汇总_分享+记录-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程序&…