给定一个字符串 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;
- }
- }
-
相关阅读:
写过的最蠢的代码
react 项目搭建步骤
Unity物体查找方式
【小程序源码】二维码DIY背景美化生成器
android11.0 Launcher3 高端定制之 BubbleTextView 应用名称双行显示
FTPS 227 Entering Passive Mode
智能指针C++
现货黄金与黄金一样吗?
Docker高级-1.复杂安装示例(mysql主从复制、redis集群)
【C++】1085:球弹跳高度的计算(信息学奥赛)
-
原文地址:https://blog.csdn.net/xiao_xiao_wang_/article/details/133962992