反转字符串II Java
2022/2/1 20:12:25
本文主要是介绍反转字符串II Java,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
力扣题目链接
基础知识
1.解法一
class Solution { public String reverseStr(String s, int k) { StringBuffer res = new StringBuffer(); int length = s.length(); int start = 0; while(start<length){ //找到k处和2k处 StringBuffer temp = new StringBuffer(); //与length进行判断,如果大于length,就将其置为length int firstK = (start+k>length) ? length : start + k; int secondK = (start+2*k>length) ? length : start +2*k; //无论start在什么位置,至少反转一次 temp.append(s.substring(start,firstK)); res.append(temp.reverse()); //如果firstK与secondK之间有元素,这些元素可以直接存入res if(firstK<secondK){ res.append(s.substring(firstK,secondK)); } start += (2*k); } return res.toString(); } }
2.解法二
class Solution { public String reverseStr(String s, int k) { char[] ch = s.toCharArray(); for(int i = 0; i < ch.length; i += 2 * k){ int start = i; //这里是判断尾数够不够k个来取决end指针的位置 int end = Math.min(ch.length - 1, start + k - 1); //用异或运算反转 while(start < end){ ch[start] ^= ch[end]; ch[end] ^= ch[start]; ch[start] ^= ch[end]; start++; end--; } } return new String(ch); } }
这篇关于反转字符串II Java的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)