class Solution {
public StringBuilder removeSpace(String s) {
int slowindex=0;
int fastindex=s.length()-1;
while(slowindex<s.length()&&s.charAt(slowindex)==' '){
slowindex++;
}
while(fastindex>0&&s.charAt(fastindex)==' '){
fastindex--;
}
StringBuilder record = new StringBuilder();
while(slowindex<=fastindex){
if(s.charAt(slowindex)==' '&&record.charAt(record.length()-1)==' '){
slowindex++;
}
else{
record.append(s.charAt(slowindex));
slowindex++;
}
}
return record;
}
public void reverse(StringBuilder result,int start,int end){
char tmp;
while(start<end){
tmp=result.charAt(start);
result.setCharAt(start,result.charAt(end));
result.setCharAt(end,tmp);
end--;
start++;
}
}
public String reverseWords(String s) {
StringBuilder result = new StringBuilder();
result=removeSpace(s);
System.out.println(result);
reverse(result,0,result.length()-1);
int start=0;
int end=0;
while(end<result.length()){
while(end<result.length()&&result.charAt(end)!=' '){
end++;
}
reverse(result,start,end-1);
if(end+1<result.length()) {
start=end+1;
end+=1;}
}
String result_true=result.toString();
return result_true;
}
}
卡码网:55.右旋字符串
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();
StringBuilder sb = new StringBuilder(s);
reverse(sb,0,len-1);
reverse(sb,0,n-1);
reverse(sb,n,len-1);
System.out.println(sb);
}
public static void reverse(StringBuilder result,int start,int end){
char tmp;
while(start<end){
tmp=result.charAt(start);
result.setCharAt(start,result.charAt(end));
result.setCharAt(end,tmp);
end--;
start++;
}
}
}