541. 反转字符串II
给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
示例:
输入: s = "abcdefg", k = 2
输出: "bacdfeg"
- 时间复杂度: O(n)
- 空间复杂度: O(1)
class Solution {
public String reverseStr(String s, int k) {
char[] ch = s.toCharArray();
for(int i = 0;i<ch.length;i+=2*k){
if(i+k<=ch.length){
swap(i, i+k-1, ch);
}else{
swap(i, ch.length-1, ch);
}
}
String result = new String(ch);
return result;
}
public char[] swap(int a, int b, char[] ch){
while(a<b){
char temp;
temp = ch[b];
ch[b] = ch[a];
ch[a] = temp;
a++;
b--;
}
return ch;
}
}
替换数字
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。
例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。
对于输入字符串 "a5b",函数应该将其转换为 "anumberb"
输入:一个字符串 s,s 仅包含小写字母和数字字符。
输出:打印一个新的字符串,其中每个数字字符都被替换为了number
样例输入:a1b2c3
样例输出:anumberbnumbercnumber
数据范围:1 <= s.length < 10000。
import java.util.*;
public class Main {
public static void main(String[] args) {
//输入
Scanner sc = new Scanner(System.in);
String s = sc.next();
//确定新数组的长度
int len = s.length();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= 0 && s.charAt(i) <= '9') {
len += 5;
}
}
//拷贝旧数组的字符到新数组
char[] ret

最低0.47元/天 解锁文章
468

被折叠的 条评论
为什么被折叠?



