java 多种方法解决 字符串的旋转问题

来源:互联网 发布:psv淘宝 编辑:程序博客网 时间:2024/05/11 13:33

字符串的旋转
  • 热度指数:3877时间限制:3秒空间限制:32768K
  • 本题知识点: 编程基础 字符串
  •  算法知识视频讲解

题目描述

对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。

给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。

测试样例:
"ABCDEFGH",8,4
返回:"FGHABCDE"
我的解法:

import java.util.*;public class StringRotation {    public String rotateString(String A, int n, int p) {            char[] a = A.toCharArray();            reverse(a,0,p);            reverse(a,p+1,n-1);            reverse(a,0,n-1);            return String.valueOf(a);        }    public void reverse(char[] a,int start,int end){                while(start<end){                char t = a[start];                a[start]=a[end];                a[end]=t;                start++;                end--;        }    }}

其他解法:

import java.util.*; public class StringRotation {    public String rotateString(String A, int n, int p) {        // write code here        String sub1 = A.substring(0, p+1);        String sub2 = A.substring(p+1, n);        String result = sub2 + sub1;        return result;    }}

 string rotateString(string A, int n, int p) {        string s = A+A;        return s.substr(p+1,n);    }



class StringRotation {public:    string rotateString(string A, int n, int p) {        return A.substr(p+1)+A.substr(0,p+1);    }};





0 0
原创粉丝点击