给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
k 个,则将剩余字符全部反转。2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。解题思路:(超复杂版)
- public class title541 {
- public static void main(String[] args) {
- String s="a";
- int k=2;
- System.out.println(s);
- reverseStr(s,k);
-
- }
-
- public static String reverseStr(String s, int k) {
- String result="";
- String str1,str2;
- for(int i=0;i
2*k){ - //交换前k位
- if(i+k
- str1=reverse(s,i,i+k);
- }else {
- str1=reverse(s,i,s.length());
- }
- if(i+2*k
- str2=findStr(s,i+k,i+2*k);
- }else {
- str2=findStr(s,i+k,s.length());
- }
- result=result+str1+str2;
- }
- return result;
- }
-
- public static String reverse(String s,int i,int n){
- //取s的第i到第n位
- String str="";
- for(int m=i;m
- str=str+s.charAt(m);
- }
- char[] ch=str.toCharArray();
- int left=0,right=ch.length-1;
- char temp;
- while (left
- temp=ch[left];
- ch[left]=ch[right];
- ch[right]=temp;
- left++;
- right--;
- }
- //将字符数组转化为字符串
- str=String.valueOf(ch);
- return str;
- }
- public static String findStr(String s,int i,int n){
- //取s的第n+1到第n位
- String str="";
- for(int m=i;m
- str=str+s.charAt(m);
- }
- return str;
- }
- }
-
相关阅读:
如何识别图片中的文字?三种方法轻松搞定
[杂谈]-快速了解半波和全波整流
taro整体架构简析
Spring框架讲解笔记:spring框架学习的要点总结
鞋3D点胶 halcon切平面算法
LCR 051. 二叉树中的最大路径和
AB实验--科学增长
c++模板
表白爱心代码
Linux--进程间通讯--FIFO(open打开)
-
原文地址:https://blog.csdn.net/xiao_xiao_wang_/article/details/133962992