标签:字符 java 反转 s1 力扣 length 541 数组 字符串
题目:
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
示例 1:
输入:s = "abcdefg", k = 2
输出:"bacdfeg"
示例 2:
输入:s = "abcd", k = 2
输出:"bacd"
提示:
1 <= s.length <= 104
s 仅由小写英文组成
1 <= k <= 104
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-string-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
1.将字符串变为字符数组,方便字符的遍历;
2.定义两个指针,分别表示反转的起始位置和结束位置;
说明:Math.min(i + k, n) - 1,取最小值是当总字符数 < k时,翻转数就为n,减一是因为i是从0开始的,真实值要小1。
代码:
小知识:
1.s.length是针对java中数组的,length是数组的一个属性,用来表示数组的长度,数组有length属性,而没有length()方法;
s.length()则是字符串的一个方法,用来返回字符串的长度的,字符串是没有length属性的,只有length()方法。
2.toCharArray() 方法将字符串转换为字符数组。
// 将字符串s转化成一个char类型的数组,数组名为s1 char[] s1 = s.toCharArray();
//又将s1转化成string字符串
return new String(s1);
标签:字符,java,反转,s1,力扣,length,541,数组,字符串 来源: https://www.cnblogs.com/lmy569/p/16228437.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。