541. Reverse String II
来源:互联网 发布:java手机开发工具 编辑:程序博客网 时间:2024/04/30 10:44
541. Reverse String II
- Description
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:
- The string consists of lower English letters only.
- Length of the given string and k will in the range [1, 10000]
class Solution { public String reverseStr(String s, int k) { char[] chars=s.toCharArray(); int time=s.length()/(2*k); System.out.println(time); char temp; if(time>0){ for(int i=0;i<time;i++){//change ki ki+1 ki+2....ki+k-1 for(int x=0;x<(k/2);x++) { temp=chars[2*k*i+x]; chars[2*k*i+x]=chars[2*k*i+k-1-x]; chars[2*k*i+k-1-x]=temp; } } } //change 2k*time-1 2k*time... int left=s.length()-2*k*time;//剩下的数组个数 //2k*time-1 2k*time .....2k*time+left-1 if(left<k){ for(int x=0;x<(left/2);x++){ temp=chars[2*k*time+x]; chars[2*k*time+x]=chars[2*k*time-1+left-x]; chars[2*k*time-1+left-x]=temp; } }else{//left>k for(int x=0;x<(k/2);x++){ temp=chars[2*k*time+x]; chars[2*k*time+x]=chars[2*k*time-1+k-x]; chars[2*k*time-1+k-x]=temp; } } return new String(chars); }}
improve
class Solution { public String reverseStr(String s, int k) { char[] chars=s.toCharArray(); int time=s.length()/(2*k); if(time>0){ for(int i=0;i<time;i++){ chars=sort(chars,2*k*i,2*k*i+k-1); } } int left=s.length()-2*k*time; int e=left<k?left:k; if(e>0){ chars=sort(chars,2*k*time,2*k*time+e-1); } return new String(chars); } public char[] sort(char[] chars,int s,int e){ //对chars[],start和end之间倒序 int l=e-s+1; char temp; for(int i=0;i<(l/2);i++){ temp=chars[s+i]; chars[s+i]=chars[e-i]; chars[e-i]=temp; } return chars; }}
阅读全文
0 0
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- 541. Reverse String II
- String:541. Reverse String II
- leetcode 541. Reverse String II
- Leetcode-541. Reverse String II
- Docker学习系列从零开始之基于SSH镜像制作mysql的镜像【六】
- C# 事件浅析
- ssh升级需提前转好telnet,telnet在windows下就可以使用
- 数据库sqlite查询语句与升序或降序
- python报错TabError: Inconsistent use of tabs and spaces in indentation
- 541. Reverse String II
- 尴尬!Edge 频出错,微软员工演示现场安装 Chrome
- Pat 1002. 写出这个数
- 第五章 BF算法和KMP算法
- 趣图:随机函数帮你实现家庭和睦
- 关于引用构造函数形参和实际参数的数据类型必须一致的实验案例
- 关于字符串的一些常用判断 是否全部为数字 是否包含有数字 是否包含有英文
- 给元素绑定click事件时造成事件累加
- Hibernate框架的第四天(查询方式和策略)