博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Weekly Contest 23
阅读量:5892 次
发布时间:2019-06-19

本文共 1224 字,大约阅读时间需要 4 分钟。

541. Reverse String II

Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and left the other as original.

Example:

Input: s = "abcdefg", k = 2Output: "bacdfeg"
Restrictions:
  1. The string consists of lower English letters only.
  2. Length of the given string and k will in the range [1, 10000]

这道题是说一个字符串s按照每隔2k个字符(从0开始计算)的offset开始旋转k个字符。如果剩余的字符没有达到k的长度就全部旋转,如果超过k的长度但是没有达到2k的长度,就只旋转k个长度的字符。

这里设置i为起始旋转点,j为旋转子串的循环下标。right为每个旋转子串的最右边节点下标。这里注意到每个头尾节点满足下标加起来等于i + right。

程序如下:

class Solution {public:    string reverseStr(string s, int k) {        string res = s;        if (s.size() == 1) return s;        for (int i = 0; i < s.size(); i += k * 2) {            int right = min(i + k - 1, (int)s.size() - 1);            for (int j = i; j <= (i + right) / 2; ++j) {                char t = res[j];                res[j] = res[i + right - j];                res[i + right - j] = t;            }        }        return res;    }};

 

转载于:https://www.cnblogs.com/yuanluo/p/6537687.html

你可能感兴趣的文章
3450: Tyvj1952 Easy
查看>>
delphi基本语法
查看>>
java中的Static class
查看>>
删除重复节点
查看>>
.net请求Webservice简单实现天气预报功能
查看>>
Loj #3056. 「HNOI2019」多边形
查看>>
【3】数据库的表设计和初始化
查看>>
Django rest framework的基本用法
查看>>
正则表达式匹配非需要匹配的字符串(标题自己都绕晕了)
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
c#基础--字符串的处理_string类
查看>>
《C语言》-(流程控制:顺序结构、选择结构、循环结构)
查看>>
mobile deeplearning
查看>>
Hadoop生态圈-Kafka的完全分布式部署
查看>>
《玩转Django2.0》读书笔记-探究视图
查看>>
SOCK_STREAM & SOCK_DGRAM
查看>>
css的border的solid
查看>>
div+css实现window xp桌面图标布局(至上而下从左往右)
查看>>
0-1 背包问题
查看>>