Leetcode3138. 同位字符串连接的最小长度

Every day a Leetcode

题目来源:3138. 同位字符串连接的最小长度

解法1:枚举同位子串的长度

从小到大枚举字符串 t 的长度 len。

因为字符串 s 由字符串 t 和它的同位字符串连接而成,所以 n % len = 0。

然后比较所有首字母下标为 0、len、2*len、3*len、⋯、n−len 的长为 len 的子串,所包含的字母及其个数是否一样(同位字符串)。

我的做法是用一个集合 set 保存这些排序后的子串,如果 set.size() > 1,说明不符合要求,直接退出这一次循环。当发现在一次循环中最后 set.size() == 1,说明找到了符合要求的字符串 t,此时的 len 就是同位字符串连接的最小长度。

如果这些因子都不满足要求,答案一定是 n。

代码:

class Solution
{
public:int minAnagramLength(string s){int n = s.length();for (int len = 1; len < n; len++){if (n % len == 0){set<string> set;for (int i = 0; i < n; i += len){string temp = s.substr(i, len);sort(temp.begin(), temp.end());set.insert(temp);if (set.size() > 1)break;}if (set.size() == 1)return len;}}return n;}
};

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(A*n),其中 n 是字符串 s 的长度,A 是 n 的因子个数(也就是可枚举的 len 的个数)。

空间复杂度:O(n),其中 n 是字符串 s 的长度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux之升华篇】Linux内核锁、用户模式与内核模式、用户进程通讯方式

文章目录 Linux 中主要几种内核锁Linux 中的用户模式和内核模式申请大块内核内存用户进程间通信的几种方式通过伙伴系统申请内核内存的函数Linux 虚拟文件系统的关键数据结构对文件或设备的操作函数的数据结构Linux 中的文件创建进程的系统调用调用 schedule()进行进程切换的方…

阿里云域名备案流程

阿里云域名备案流程大致可以分为以下几个步骤&#xff0c;这些信息综合了不同来源的最新流程说明&#xff0c;确保了流程的时效性和准确性&#xff1a; UP贴心的附带了链接&#xff1a; 首次备案流程&#xff1a;ICP首次备案_备案(ICP Filing)-阿里云帮助中心 (aliyun.com) …

政安晨:【Keras机器学习示例演绎】(四十三)—— 使用 KerasNLP 实现英语到西班牙语的翻译

目录 简介 设置 下载数据 解析数据 数据标记化 格式化数据集 建立模型 训练我们的模型 解码测试句子&#xff08;定性分析&#xff09; 解码测试句子&#xff08;定性分析&#xff09; 评估我们的模型&#xff08;定量分析&#xff09; 10 个轮次后&#xff0c;得分…

事务-MYSQL

目录 1.事务操作演示 2.事务四大特性ACID 3.并发事务问题 4. 并发事务演示及隔离级别​编辑​编辑​编辑​编辑​编辑​编辑​编辑 1.事务操作演示 默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务。 方式二 2.事务四大特性ACID 原子…

多线程-线程安全

目录 线程安全问题 加锁(synchronized) synchronized 使用方法 synchronized的其他使用方法 synchronized 重要特性(可重入的) 死锁的问题 对 2> 提出问题 对 3> 提出问题 解决死锁 对 2> 进行解答 对4> 进行解答 volatile 关键字 wait 和 notify (重要…

LeetCode例题讲解:844.比较含退格的字符串

给定 s 和 t 两个字符串&#xff0c;当它们分别被输入到空白的文本编辑器后&#xff0c;如果两者相等&#xff0c;返回 true 。# 代表退格字符。 注意&#xff1a;如果对空文本输入退格字符&#xff0c;文本继续为空。 示例 1&#xff1a; 输入&#xff1a;s "ab#c&qu…

AtCoder Beginner Contest 310 D题 Peaceful Teams

D题&#xff1a;Peaceful Teams 标签&#xff1a;深搜 d f s dfs dfs、状压 d p dp dp题意&#xff1a;给定 n n n个运动员要分成 t t t只队伍&#xff08;每只队伍至少 1 1 1人&#xff09;&#xff0c;并且给定 m m m个矛盾关系 a i a_i ai​运动员和 b i b_i bi​运动员&am…

llm.c的Makefile

源码 CC ? clang CFLAGS -Ofast -Wno-unused-result -Wno-ignored-pragmas -Wno-unknown-attributes LDFLAGS LDLIBS -lm INCLUDES CFLAGS_COND -marchnative# Find nvcc SHELL_UNAME $(shell uname) REMOVE_FILES rm -f OUTPUT_FILE -o $ CUDA_OUTPUT_FILE -o $# N…

vue.js 介绍

Vue.js 是一种流行的前端 JavaScript 框架&#xff0c;主要用于构建网页和单页应用程序&#xff08;SPA&#xff09;。它由前谷歌工程师尤雨溪&#xff08;Evan You&#xff09;于2014年开发。Vue.js 设计目标是通过简单的 API 提供高效的数据绑定和灵活的组件系统&#xff0c;…

springboot项目打包部署

springboot打包的前提条件jdk必须17以后不然本地运行不来&#xff08;我用的jdk是22&#xff09; 查看自己电脑jdk版本可以参考&#xff08;完美解决Windows10下-更换JDK环境变量后&#xff0c;在cmd下执行仍java -version然出现原来版本的JDK的问题-CSDN博客&#xff09; 1、…

六级翻译笔记

理解加表达 除了专有名词不能自己理解翻译&#xff0c;其它都可以 时态一般唯一 题目里出现有翻译为 客观存在&#xff1a; there be 单词结尾加er和ee的区别&#xff1a;er是主动&#xff0c;ee是被动 中文句子没有被动&#xff0c;也可以英文翻译为被动 中文的状语可以不是…

【无标获取S4与ECC的具体差异的方法题】

首先我们需要对ECC vs S4的差异这个课题要有一个深刻的理解&#xff0c;这不是一个简单并能准确说清楚的课题。 我们需要结合实际项目的具体情况去回答这个问题&#xff0c;因为这个问题本身是没有标准答案的。 首先要了解SAP本身ERP产品线的发展概况&#xff0c;其次我们要…

GitHub操作

远程库-GitHub GitHub网址 GitHub是全球最大的远程库 1. 创建远程库 2. 远程仓库操作 2.1 创建远程仓库别名 git remote -v 查看当前所有远程库地址别名 git remote add 别名 远程地址 设置远程库地址别名 案例操作 起一个别名会出现两个别名&#xff0c;是因为既可以拉取…

Set和Map有什么相同和不同之处?

Set 和 Map 都是 ES6&#xff08;ECMAScript 2015&#xff09;中引入的两种新的数据结构&#xff0c;它们都属于集合类型&#xff0c;但各自有各自的特点和用法。 相同点&#xff1a; 键的唯一性&#xff1a;无论是 Set 还是 Map&#xff0c;它们的键&#xff08;在 Set 中&a…

若依前端分离版-APP(UNI APP)表单添加验证

1.在page页面中onReady事件添加如下代码 onReady() {this.$refs.form.setRules(this.rules)}, 2.在data中添加ruels这个对象 rules: {nickName: {rules: [{required: true,errorMessage: 用户昵称不能为空}]},phonenumber: {rules: [{required: true,errorMessage: 手机号码不…

Rust :如何累计时间长度?

在Rust中&#xff0c;如果你想要记录累计时间&#xff0c;通常可以使用标准库中的std::time::Duration类型。Duration类型表示一个时间段&#xff0c;并且它可以很容易地进行加法和减法操作&#xff0c;从而用于累计时间。 下面是一个简单的例子&#xff0c;展示了如何使用Dur…

C语言 | Leetcode C语言题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; int largestRectangleArea(int* heights, int heightsSize) {int st[heightsSize];int p[2];p[0]-1,p[1]heightsSize;int size0,result0;st[size]0;for(int i1;i<heightsSize;i){ while(size!0&&heights[i]<heights[st[size-1…

动态规划解决回文子串问题

前言&#xff1a; 回文串相关问题在我们的算法题中算是老生常谈&#xff0c;本文主要介绍如何使用动态规划的思路去解决回文串系列问题。 总体思路&#xff1a; 能够将所有的子串是否是回文的信息&#xff0c;存储在二维dp表中。有了这个dp表&#xff0c;就可以将hard难度转…

Vue3实战笔记(07)— Axios进阶与提高

文章目录 前言一、创建自定义配置的实例二、掌握返回的结果结构三、拦截器相关用法四、异常处理相关五、取消请求的方式总结 前言 书接上文&#xff0c;目标对Axios的更多功能和特性熟练与提高。 一、创建自定义配置的实例 axios可以创建自定义配置的实例&#xff0c;可以试试…

密钥变更检查导致VScode远程SSH时无法连接服务器

报错 使用vscode的Remote - SSH插件远程连接不同服务器时报错如下 [11:42:51.784] Log Level: 2 [11:42:51.792] SSH Resolver called for "ssh-remote27.23.24.103", attempt 1 [11:42:51.793] "remote.SSH.useLocalServer": false [11:42:51.793] &quo…