Skip to content

Commit

Permalink
Merge pull request youngyangyang04#2332 from Junior-W/master
Browse files Browse the repository at this point in the history
添加 kama55.右旋字符串.md Java版本
  • Loading branch information
youngyangyang04 authored Nov 13, 2023
2 parents 139a4db + f520b1d commit 4d28c81
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions problems/kama55.右旋字符串.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,70 @@ int main() {
## 其他语言版本

### Java:
```Java
// 版本一
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine());
String s = in.nextLine();

int len = s.length(); //获取字符串长度
char[] chars = s.toCharArray();
reverseString(chars, 0, len - 1); //反转整个字符串
reverseString(chars, 0, n - 1); //反转前一段字符串,此时的字符串首尾尾是0,n - 1
reverseString(chars, n, len - 1); //反转后一段字符串,此时的字符串首尾尾是n,len - 1

System.out.println(chars);

}

public static void reverseString(char[] ch, int start, int end) {
//异或法反转字符串,参照题目 344.反转字符串的解释
while (start < end) {
ch[start] ^= ch[end];
ch[end] ^= ch[start];
ch[start] ^= ch[end];
start++;
end--;
}
}
}


// 版本二
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine());
String s = in.nextLine();

int len = s.length(); //获取字符串长度
char[] chars = s.toCharArray();
reverseString(chars, 0, len - n - 1); //反转前一段字符串,此时的字符串首尾是0,len - n - 1
reverseString(chars, len - n, len - 1); //反转后一段字符串,此时的字符串首尾是len - n,len - 1
reverseString(chars, 0, len - 1); //反转整个字符串

System.out.println(chars);

}

public static void reverseString(char[] ch, int start, int end) {
//异或法反转字符串,参照题目 344.反转字符串的解释
while (start < end) {
ch[start] ^= ch[end];
ch[end] ^= ch[start];
ch[start] ^= ch[end];
start++;
end--;
}
}
}
```

### Python:

Expand Down

0 comments on commit 4d28c81

Please sign in to comment.