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

Leetcode2937. 使三个字符串相等

Every day a Leetcode

题目来源:2937. 使三个字符串相等

解法1:枚举

设 len1、len2、len3 分别为字符串 s1、s2、s3 的长度。

min_len 是 3 个字符串长度的最小值。

枚举 len = min_len 到 len = 1,设 t1、t2、t3 分别是字符串 s1、s2、s3 的从 0 开始、长度为 len 的子串。

如果 t1 == t2 == t3,说明可以通过操作(选择其中一个长度至少为 2 的字符串并删除其最右位置上的字符)使这三个字符串相等,最小操作次数 = len1 + len2 + len3 - 3 * len。

否则,返回 -1。

代码:

/** @lc app=leetcode.cn id=2937 lang=cpp** [2937] 使三个字符串相等*/// @lc code=start
class Solution
{
public:int findMinimumOperations(string s1, string s2, string s3){int len1 = s1.length(), len2 = s2.length(), len3 = s3.length();int min_len = min(len1, min(len2, len3));for (int len = min_len; len >= 1; len--){string t1 = s1.substr(0, len), t2 = s2.substr(0, len), t3 = s3.substr(0, len);if (t1 == t2 && t2 == t3)return len1 + len2 + len3 - 3 * len;}return -1;}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(min_len),其中 min_len 为三个字符串中的最短字符串的长度。

空间复杂度:O(1)。

http://www.lryc.cn/news/236918.html

相关文章:

  • <MySQL> 如何合理的设计数据库中的表?数据表设计的三种关系
  • 基于操作系统讨论Java线程与进程、浅谈Go的线程与管程
  • CICD 持续集成与持续交付——jenkins
  • 【Zabbix】Zabbix Agent 2在Ubuntu/Debian系统上的安装
  • 浅谈无线测温产品在菲律宾某工厂配电项目的应用
  • 软件工程第十一周
  • 【从入门到起飞】JavaSE—带你了解Map,HashMap,TreeMap的使用方法
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • FPC焊点剥离失效分析
  • Java爬虫框架下代理使用中的TCP连接池问题及解决方案
  • PostgreSQL 数据定义语言 DDL
  • 设计模式-行为型模式-策略模式
  • ResizeObserver观察元素宽度的变化
  • 斐波那契数列,剑指offer,力扣
  • Mac安装CocoaPods
  • APP专项测试方法和工具的使用(测试新手必看)
  • WordPress网站迁移实战经验
  • 3D全景视角,足不出户感知真实场景的魅力
  • C编译环境和预处理(非常详细,建议收藏)
  • LeetCode669. Trim a Binary Search Tree
  • YOLOv8优化策略:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023
  • 【数据结构(二)】稀疏 sparsearray 数组(1)
  • MySQL的执行器是怎么工作的
  • 【目标测距】雷达投影测距
  • uniapp、小程序canvas相关
  • [工业自动化-23]:西门子S7-15xxx编程 - 软件编程 - 西门子PLC人机界面交互HMI功能概述、硬件环境准备、软件环境准备
  • 在Ubuntu系统中安装VNC并结合内网穿透实现公网远程访问
  • java基础练习缺少项目?看这篇文章就够了(上)!
  • 鸿蒙为什么使用typescript 作为开发语言 而不是 flutter 或者 kotlin
  • Flutter NestedScrollView 、SliverAppBar全解析,悬浮菜单的应用