文章标题

题目:给你一个字符串str ,从1 开始长度为s,每次给你一个 a[i] ,然后将 [ a[i] , (s-a[i]+1) ] 区间内的字符串翻转,问你经过n次操作以后整个字符串是什么样的。
*input
abcdef
1
2
output
aedcbf
input
vwxyz
2
2 2
output
vwxyz
input
abcdef
3
1 2 3
output
fbdcea*

import java.util.Scanner;


public class B525 {
void solve(){
    Scanner sc=new Scanner(System.in);
    char str[]=sc.nextLine().toCharArray();
    int m=sc.nextInt();
    int[] arr=new int[str.length];//与字符串长度一样
    for(int i=0;i<m;i++){// 
        int a=sc.nextInt()-1;
        arr[a]+=1;//记录交换位置出现的次数
    }
    for(int i=0;i<arr.length-1;i++){
        if(arr[i]%2==1){

            for(int j=i;j<=str.length/2-1;j++){
                char temp=str[j];
                str[j]=str[str.length-j-1];
                str[str.length-j-1]=temp;
            }
        }
    }
    System.out.println(str);
}
void swap(char[] arr,int a,int b){
    for(int i=a;i<=b;i++){
        char temp=arr[i];
        arr[i]=arr[arr.length-i-1];
        arr[arr.length-i-1]=temp;
    }
}
public static void main(String[] args){
    new B525().solve();
}
}

以上代码运行超时

题目链接:http://codeforces.com/contest/525/problem/B

你可能感兴趣的:(文章标题)