【算法萌新闯力扣】:旋转字符串
力扣热题:796.旋转字符串
开篇
今天下午刷了6道力扣算法题,选了一道有多种解法的题目与大家分享。
题目链接:796.旋转字符串
题目描述

代码思路
完全按照题目的要求,利用StringBuffer中的方法对字符串进行旋转,寻找相同的一项
代码纯享版
class Solution {public boolean rotateString(String s, String goal) {if(s.length() != goal.length()) return false;StringBuffer str = new StringBuffer(s);for(int i = 0; i < s.length(); i++){if(str.toString().equals(goal)) return true;char a = str.charAt(0);str.delete(0,1);str.append("" + a);}return false;}
}
代码逐行解析版
class Solution {public boolean rotateString(String s, String goal) {if(s.length() != goal.length()) return false; //两个字符串如果长度不同,一定不符合要求StringBuffer str = new StringBuffer(s);//改变s的类型,方便操作for(int i = 0; i < s.length(); i++){if(str.toString().equals(goal)) return true; //如果两个字符串一样,返回truechar a = str.charAt(0); //根据题目要求,以下3行对字符串进行旋转str.delete(0,1);str.append("" + a);}return false; //对字符串旋转与其长度相同的次数后仍无法满足要求,返回false}
}
其它解法
1.利用取模运算,不需要对字符串进行旋转即可进行判断
class Solution {public boolean rotateString(String s, String goal) {int m = s.length(), n = goal.length();if (m != n) {return false;}for (int i = 0; i < n; i++) {boolean flag = true;for (int j = 0; j < n; j++) {if (s.charAt((i + j) % n) != goal.charAt(j)) {flag = false;break;}}if (flag) {return true;}}return false;}
}
2.这方法太牛逼了。字符串s+s中包含了旋转的所有结果,只需要判断goal是否为s+s的子串。
class Solution {public boolean rotateString(String s, String goal) {return s.length() == goal.length() && (s + s).contains(goal);}
}
结语
如果这道题的分享对你有帮助,点个关注支持一下,我会每天更新力扣题目的讲解,与大家一起进步。
相关文章:
【算法萌新闯力扣】:旋转字符串
力扣热题:796.旋转字符串 开篇 今天下午刷了6道力扣算法题,选了一道有多种解法的题目与大家分享。 题目链接:796.旋转字符串 题目描述 代码思路 完全按照题目的要求,利用StringBuffer中的方法对字符串进行旋转,寻找相同的一项 …...
可逆矩阵的性质
如果矩阵A可逆,那么它的逆矩阵也可逆,并且如果矩阵A可逆,假设是一个不为0的数,那么也可逆,并且如果矩阵A和都可逆,而且它们的阶数也相同,那么它们的乘积也是可逆的,并且如果矩阵A可逆…...
HIT 模式识别 手写汉字分类 Python实现
训练集数据 TrainSamples-400.csv,含 100 个不同汉字,每个汉字 400 个实例,每个实例均为 64*64 的二值图像; 训练集标注TrainSamples-400.csv,为 40000 个 0 到 99 间的整数,表示训练集中每个实例所属汉字类…...
GPT-4V-Act :一个多模态AI助手,能够像人类一样模拟通过鼠标和键盘进行网页浏览。
内容来源:xiaohuggg GPT-4V-Act :一个多模态AI助手,能够像人类一样模拟通过鼠标和键盘进行网页浏览。 它可以模拟人类浏览网页时的行为,如点击链接、填写表单、滚动页面等。 它通过视觉理解技术识别网页上的元素,就像…...
剪辑视频怎么把说话声音转成文字?
短视频已然成为了一种生活潮流,我们每天都在浏览各种短视频,或者用视频的形式记录生活,在制作视频的时候,字幕是一个很大的问题,给视频添加字幕可以更直观、更方便浏览。手动添加太费时间,下面就给大家分享…...
maven打包插件配置模板
主要有两类: 1、maven-shade-plugin 主要用于java程序编写的的打包 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</ve…...
clusterProfiler包学习
📖 Introduction | Biomedical Knowledge Mining using GOSemSim and clusterProfiler (yulab-smu.top) 部分使用 #GO classificationlibrary(clusterProfiler) data(geneList, package"DOSE") gene <- names(geneList)[abs(geneList) > 2]# Entre…...
【Qt开发流程之】布局管理
介绍 一个界面呈现,如果要让用户有更好的观感,布局必不可少。 【Qt之布局】QVBoxLayout、QHBoxLayout、QGridLayout、QFormLayout介绍及使用 链接: https://blog.csdn.net/MrHHHHHH/article/details/133915208 qt布局类图: Qt布局是Qt图形…...
建筑可视化中的 3D 纹理
在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 1、什么是 3D 纹理? 纹理是将二维图像添加到三维模型的技术艺术。虽然对物体进行纹…...
9.docker镜像Tag为none的原因
1.现象 使用docker images命令查看镜像列表,会发现存在许多标签为none的镜像: 2. 原因 docker镜像标签为none的原因如下: (1)构建或重新拉取同名同Tag的新镜像:构建或重新拉取同名同Tag的新镜像后&…...
HTML5学习系列之响应式图像
HTML5学习系列之响应式图像 前言响应式图像响应视图大小响应屏幕方向响应像素密度响应图像格式自适应像素比自适应视图宽 总结 前言 学习记录 响应式图像 响应视图大小 容器 srcset:图片地址,必需有。media:设置媒体查询。sizesÿ…...
基于数据库(MySQL)与缓存(Redis)实现分布式锁
分布式锁 分布式锁:分布式锁是在分布式的情况下实现互斥类型的一种锁 实现分布式锁需要满足的五个条件 可见性:多个进程都能看到结果互斥性:只允许一个持有锁的对象的进入临界资源可用性:无论何时都要保证锁服务的可用性&#x…...
2023年A特种设备相关管理(锅炉压力容器压力管道)证模拟考试题库及A特种设备相关管理(锅炉压力容器压力管道)理论考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2023年A特种设备相关管理(锅炉压力容器压力管道)证模拟考试题库及A特种设备相关管理(锅炉压力容器压力管道)理论考试试题是由安全生产模拟考试一点通提供,A特…...
系统及其存储相关
1.区分系统(软件)和固件 1.1概念辨别 系统(软件software): 角色: 系统是计算机中的核心软件,提供基本的管理、控制和资源分配功能。它通常包括操作系统,负责管理硬件资源、提供用户…...
鸿蒙原生应用开发-折叠屏、平板设备服务卡片适配
一、多设备卡片适配原则 为不同尺寸的卡片提供不同的功能 在卡片开发过程中请考虑适配不同尺寸的设备,特别是在折叠屏和平板设备上,设备屏幕尺寸的变化直接影响了卡片内容的展示。请发挥想象力设计具有自适应能力的卡片,避免在卡片内容不做…...
android查漏补缺(8)Android广播不同种类介绍
按照是否有序分类 1,普通广播(无序广播) 广播按照逻辑上同一时刻(实际可能被CPU按照抢占式任务无序发给注册模块)发送给注册模块 #发送方法: Context.sendBroadcast() 2,有序广播 广播按照…...
什么是美颜SDK?直播美颜SDK技术深度剖析
在实现实时美颜的过程中,美颜SDK扮演着关键的角色,它为开发者提供了一套强大的工具,使得实时美颜效果能够轻松应用于直播平台。 一、美颜SDK的基本概念 美颜SDK是一种软件工具包,通过集成了丰富的图像处理算法和实时计算技术&a…...
红海营销时代,内容占位的出海品牌更有机会营销占位
#01 品牌出海:内容占位就是品牌营销占位 红海营销时代,内容信息充斥着用户周边。无论线上还是线下,生活工作、休闲娱乐等不同场景内,广告信息均无孔不入。对于用户来说,能记住的品牌或者商品往往寥寥无几。 占位营销…...
解决龙芯loongarch64服务器编译安装Python后yum命令无法使用的问题“no module named ‘dnf‘”
引言 在使用Linux系统时,我们经常会使用yum来管理软件包。然而,有时候我们可能会遇到yum不可用的情况,其中一个原因就是Python的问题。本文将介绍Python对yum可用性的影响,并提供解决方案。 问题引发 正常情况下,安装linux系统后,yum命令是可用状态,升级Python版本后,…...
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、s…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
