首页 / JAVA / Java题目 左旋转字符串 解题心得
Java题目 左旋转字符串 解题心得
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java题目 左旋转字符串 解题心得,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2332字,纯文字阅读大概需要4分钟。
内容图文
![Java题目 左旋转字符串 解题心得](/upload/InfoBanner/zyjiaocheng/594/8be43f10f42e49a7b8be27686992f3c9.jpg)
初学Java,最近一直学习基础部分,为了巩固所学的知识。于是在力扣上刷题,于是看到了下面这样一道题:
左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
题目来源:力扣(LeetCode)
看到这道题我的想法是将这个字符串放到字符数组中,然后将数组中的字符按照题目要求的顺序遍历到一个新的字符数组中。以下为我使用Java语言的代码:
class Solution { public String reverseLeftWords(String s, int n) { char[] str1= new char[s.length()]; char[] str2 = s.toCharArray(); for(int i = n,j = 0;i < s.length();i++,j++){ str1[j] = str2[i]; } for(int j = s.length()-n,i = 0;i < n;i++,j++){ str1[j] = str2[i]; } s = new String(str1); return s; } }
然后我在力扣题解区看到了对于这道题更加简便的方法:
字符串切片法
该方法主要是用到了Java中String类的substring()方法,该方法的语法与参数如下:
public String substring(int beginIndex) 或 public String substring(int beginIndex, int endIndex)
参数:
beginIndex -- 起始索引(包括), 索引从 0 开始。
endIndex -- 结束索引(不包括)。
substring()方法主要是根据传进来的索引参数返回字符串的子字符串。
于是,根据这个方法上面的题就有了如下解法:
class Solution { public String reverseLeftWords(String s, int n) { return s.substring(n, s.length()) + s.substring(0, n); } }
字符串遍历拼接
该方法核心思想为创建一个空字符串,然后利用for循环和charAt()方法,将字符串中的字符按顺序一个个的添加到新的空字符串中。
该方法中用到的Java String类中的charAt()方法,charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。该方法的语法与参数如下:
public char charAt(int index)
参数:
index -- 字符的索引。
于是,根据这个方法上面的题就有了如下解法:
class Solution { public String reverseLeftWords(String s, int n) { String res = ""; for(int i = n; i < s.length(); i++) res += s.charAt(i); for(int i = 0; i < n; i++) res += s.charAt(i); return res; } }
同理,利用求余运算,可以简化代码。
class Solution { public String reverseLeftWords(String s, int n) { String res = ""; for(int i = n; i < n + s.length(); i++) res += s.charAt(i % s.length()); return res; } }
内容总结
以上是互联网集市为您收集整理的Java题目 左旋转字符串 解题心得全部内容,希望文章能够帮你解决Java题目 左旋转字符串 解题心得所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。