344
class Solution {
public void reverseString(char[] s) {
int l = 0, r = s.length - 1;
while(l < r){
char temp = s[l];
s[l] = s[r];
s[r] = temp;
l++;
r--;
}
}
}
541
class Solution {
public String reverseStr(String s, int k) {
char[] c = s.toCharArray();
for(int i = 0; i < c.length; i += (2*k)){
if(i + k > c.length - 1){
reverse(c, i, c.length - 1);
break;
}else{
reverse(c, i, i + k - 1);
}
}
return new String(c);
}
public void reverse(char[] s, int l, int r) {
while(l < r){
char temp = s[l];
s[l] = s[r];
s[r] = temp;
l++;
r--;
}
}
}
151
class Solution {
public String reverseWords(String s) {
String noSpace = removeSpace(s);
char[] str = noSpace.toCharArray();
reverseString(str, 0, str.length - 1);
int l = 0;
for(int i = 0; i <= str.length; i++){
if(i == str.length || str[i] == ' '){
reverseString(str, l, i - 1);
l = i + 1;
}
}
return new String(str);
}
public String removeSpace(String s) {
int start = 0;
int end = s.length() - 1;
while (s.charAt(start) == ' ') start++;
while (s.charAt(end) == ' ') end--;
StringBuilder sb = new StringBuilder();
while (start <= end) {
char c = s.charAt(start);
if (c != ' ' || sb.charAt(sb.length() - 1) != ' ') {
sb.append(c);
}
start++;
}
// System.out.println("ReverseWords.removeSpace returned: sb = [" + sb + "]");
return sb.toString();
}
public void reverseString(char[] s, int l, int r) {
while(l < r){
char temp = s[l];
s[l] = s[r];
s[r] = temp;
l++;
r--;
}
}
}
卡码网 54
import java.util.Scanner;
class Main{
public static String changeNumber(String s){
StringBuilder str = new StringBuilder(s);
for(int i = 0; i < str.length(); i++){
if(Character.isDigit(str.charAt(i))){
str.replace(i, i+1, "number");
}
}
return str.toString();
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String s = in.nextLine();
System.out.println(changeNumber(s));
}
}
卡码网 55
import java.util.Scanner;
class Main{
public static void reverseString(char[] s, int l, int r) {
while(l < r){
char temp = s[l];
s[l] = s[r];
s[r] = temp;
l++;
r--;
}
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int k = Integer.parseInt(in.nextLine());
String s = in.nextLine();
char[] str = s.toCharArray();
reverseString(str, 0, str.length - 1);
reverseString(str, 0, k - 1);
reverseString(str, k, str.length - 1);
System.out.println(str);
}
}
字符串主要是模拟,写倒是不难,但是java写要转成char[] 或者Stringbuilder,或者两个都要,会有点麻烦