给定一个字符串 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;
- }
- }
-
相关阅读:
直击固定资产管理痛点,让企业轻松管理海量固定资产
【Spring事务的实现原理】
数据结构-时间复杂度/空间复杂度
C++运算符重载
Cesium 展示——移除已加载的geojson文件效果
win10-docker-mysql镜像安装运行基础
猿创征文|〖Python 数据库开发实战 - Python与MySQL交互篇⑯〗- 项目实战 - 实现用户管理 - 新增用户功能
ElementPlus el-switch开关页面初始化时,change事件自动触发
小白都能轻松掌握,python最稳定的图片识别库ddddocr
OA系统登录界面(比较好看)
-
原文地址:https://blog.csdn.net/xiao_xiao_wang_/article/details/133962992