leetcode 344. 反转字符串 541. 反转字符串 II 双指针解

目录

  • leetcode 344.反转字符串
    • 1、题目
    • 2、思考
  • leetcode 541. 反转字符串 II
    • 1、题目
    • 2、思考

leetcode 344.反转字符串

1、题目

在这里插入图片描述

2、思考

典型的双指针解法:
一个从前往后,一个从后往前,指针对应的交换即可。

class Solution {
public:void reverseString(vector<char>& s) {int start=0;int end=s.size()-1;if(end == -1) return ;while(start<=end){char tmp = s[start];s[start]=s[end];s[end] = tmp;start++;end--;}}
};

leetcode 541. 反转字符串 II

1、题目

在这里插入图片描述

2、思考

交换的基础部分还是和双指针有关,主要增加了逻辑上的复杂程度。
我的逻辑描述如下:
1、获取字符串长度(s_size )、并按照2k来划分组数(group_nums ),并且计算剩下来的不能组成一组的元素的个数(left_nums )
2、将翻转包装成函数,只要输入start 和end值即可
3、循环对组内的元素进行按照题目中的描述翻转,确定start 为该组第一个元素,end为start加上k,保证前k个元素翻转
4、对剩下的元素个数进行判断
5、如果剩余字符小于k个,start = (group_nums) * 2 * k,end为s最后一个字符
6、如果剩余字符小于2k个,start = (group_nums) * 2 * k,end=start+k

class Solution {
public:void myreverse(string& s, int start, int end){while (start <= end){char tmp = s[start];s[start] = s[end];s[end] = tmp;start++;end--;}}string  reverseStr(string s, int k) {int s_size = s.size();int group_nums = s_size / (2 * k);int count = group_nums;int left_nums = s_size - 2 * k * group_nums;while (count > 0){int start = (count - 1) * 2 * k;int end = start + k - 1;myreverse(s, start, end);count--;}//剩下字符翻转if (left_nums < k){int start = (group_nums) * 2 * k;int end = s_size - 1;myreverse(s, start, end);}else if (left_nums < 2 * k){int start = (group_nums) * 2 * k;int end = start + k - 1;myreverse(s, start, end);}return s;}
};

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

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

相关文章

关于银联在线支付和短彩信接口的开发——总结

9月份开始做用二维码做闭环的一个在线订购景区门票的项目&#xff0c;其中这样做是很好的&#xff0c;用二维码连接了线上与线下的交易和兑券。银联在线支付接口&#xff08;asp.net cs&#xff09;做的很好&#xff0c;方便调用开发。就是处理回值的时候得找个更好的方法才能显…

十三、聚类算法

六、聚类算法实战 一、聚类 聚类是一种无监督的机器学习任务&#xff0c;可以自动将数据划分为类cluster&#xff0c;因此聚类分组不需要提前被告知所划分的组应该是什么样子的。因为我们甚至可能都不知道我们在寻找什么&#xff0c;所以聚类是用于知识发现而不是预测。 聚类…

pl/sql中的赋值运算符_如何在SQL中使用AND / OR运算符?

pl/sql中的赋值运算符Basically, AND / OR operator is used to retrieving the record from the database. If we give more than one conditions by using AND Operator, then it retrieves the data from the database when both the conditions are true. And if we use OR…

【C++grammar】名字隐藏与重定义

目录1、继承中的名字隐藏1.基类同名函数被隐藏的现象描述2.问题理解3.避免现象2、重定义1.现象描述2.重定义与重载的区别3.能否使用 using 将基类成员引入到派生类定义中1、继承中的名字隐藏 1.基类同名函数被隐藏的现象描述 在学习变量作用域的时候知道&#xff0c;全局变量…

javascript 核心概念(1)-数据类型

语法 &#xff08;1&#xff09;到现在为止&#xff0c;大多数浏览器也还是支持到ECMAScript 第三版的标准。 核心概念就是一个语言的基本工作原理&#xff0c;涉及语法&#xff0c;操作符&#xff0c;数据类型。 &#xff08;2&#xff09;javascript的一切--变量&#xff0c;…

注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(五):使用@Component 来简化bean的配置...

虽然我们可以通过 Autowired 在 Bean 类中使用自动注入功能&#xff0c;但是 Bean 还是在 applicatonContext.xml 文件中通过 <bean> 进行定义 —— 在前面的例子中&#xff0c;我们还是在配置文件中定义 Bean&#xff0c;通过 Autowired为 Bean 的成员变量、方法形参或构…

c语言条件语句示例_PHP中的条件语句和示例

c语言条件语句示例PHP条件语句 (PHP Conditional Statements) While coding, you may get to a point where your results can only be gotten when a condition is valid. We make use of conditional statements. Conditional statements are statements that can only be ex…

十四、聚类实战——图片压缩

对同一像素点值的像素点归为一类&#xff0c;通过平均值进行取代&#xff0c;从而将图像进行压缩并且保证图像尽可能不失真&#xff0c;关键信息仍保留。 from PIL import Image import numpy as np from sklearn.cluster import KMeans import matplotlib import matplotlib.…

步骤菜单使用css3实现

代码库&#xff1a;http://thecodeplayer.com/walkthrough/css3-breadcrumb-navigation 有兴趣的可以看一下&#xff0c;看完绝对让你大饱眼福。首先截图&#xff0c;看效果看着很酷吧&#xff0c;其实实现起来也不是很难&#xff0c;里边需要用的技术有:box-shadow,计数器&…

【嵌入式系统】STM32串口通信的四种方法(基于RTOS)

目录1、串行通信的基本参数2、轮询方式代码效果3、中断方式代码效果4、中断加上时间戳方式代码及效果5、DMA空闲中断方式接收数据1、串行通信的基本参数 串行端口的通信方式是将字节拆分成一个接一个的位再传输出去&#xff0c;接收方再将此一个一个的位组合成原来的字符&…

大数据 java 代码示例_Java变量类型与示例

大数据 java 代码示例Java变量 (Java variables) Variables are the user-defined names of the memory blocks, and their values can be changed at any time during program execution. They play an important role in a class/program as they help in to store, retrieve…

毕业设计

位置跟踪系统工作原理&#xff08;博闻网&#xff09; http://science.bowenwang.com.cn/location-tracking.htm Azuma是这样定义增强现实的 :虚实结合 ,实时交互 ,三维注册 环境搭建&#xff1a; http://cvchina.net/thread-173-1-1.html http://blog.csdn.net/jdh99/article/…

十五、聚类的评估

一、Given Label 均一性homogeneity&#xff1a;一个簇中只包含一个类别样本&#xff0c;Precision 完整性completeness&#xff1a;同类别样本被归到同一个簇中&#xff0c;Recall 将均一性h和完整性c进行结合(二者加权平均)得到V-Measure&#xff0c;&#xff0c;β为权重 …

SQL SERVER作业的Schedules浅析

SQL SERVER作业的计划&#xff08;Schedules&#xff09;&#xff0c;如果你没仔细研究过或没有应用一些复杂的计划&#xff08;Schedules&#xff09;&#xff0c;那么你觉得SQL SERVER作业的计划(Schedules)非常好用&#xff0c;也没啥问题&#xff0c;但是我要告诉你一个“残…

leetcode 51. N 皇后 思考分析

目录题目思考AC代码题目 n 皇后问题研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 思考 首先以N4为例&#xff0c;画出解空间树的一部分&#xff1a; 根据模板&#xff1a; void backtracking(参数) {if(终止条件){存放结果…

Django实战(18):提交订单

前面的内容已经基本上涵盖了Django开发的主要方面&#xff0c;我们从需求和界面设计出发&#xff0c;创建模型和修改模型&#xff0c;并通过scaffold作为开发的起点&#xff1b;在scaffold的基础上重新定制模板&#xff0c;并且通过Model类和Form类对用户输入的数据进行校验。我…

No module named ‘tensorflow.examples‘解决方案

想从tensorflow中导入mnist手写数字数据集&#xff0c;结果报错 from tensorflow.examples.tutorials.mnist import input_data import tensorflow.compat.v1 as tf tf.disable_v2_behavior()my_mnist input_data.read_data_sets("MNIST_data_bak/", one_hotTrue)&…

julia example_使用Julia中的Example的sign()函数

julia exampleJulia| sign()函数 (Julia | sign() function) sign() function is a library function in Julia programming language, it returns the sign of the given value in the form of -1/1. sign()函数是Julia编程语言中的库函数&#xff0c;它以-1 / 1的形式返回给…

.NET通用基本权限系统

DEMO下载地址&#xff1a; http://download.csdn.net/detail/shecixiong/5372895 一、开发技术&#xff1a;B/S(.NET C# ) 1、Windows XP以上 (支援最新Win 8) 2、Microsoft Visual Studio 2010/2012 C#.NET 3、.NET Framework 4.0以上 (支援最新4.5版本) 4、SQL Server 2005以…

leetcode 37. 解数独 思考分析

目录题目核心思路的不断细化1、核心框架2、考虑到每个位置的工作3、考虑到到达最后一列、该位置的数已经预置的情况4、判断是否符合规则的函数5、确定递归终止条件确定函数返回值AC代码题目 编写一个程序&#xff0c;通过填充空格来解决数独问题。 一个数独的解法需遵循如下规…