给定一个字符串 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;
- }
- }
-
相关阅读:
Codeforces Round #822 (Div. 2) A-F
Redis服务器安装和配置远程访问
分别使用BP/RBF/GRNN神经网络识别航迹异常matlab仿真
一份谷歌写给 CTO 们的报告 - DORA 2023 版全面解读
【ChatGPT-应用篇】基于chatGPT覆盖测试过程的初步探索
Mysql.常用各种类型SQL语句总结
数组、list、set、map集合之间相互转换
十大经典排序算法
Java线程池
Django入门1
-
原文地址:https://blog.csdn.net/xiao_xiao_wang_/article/details/133962992