将字符串abcdefg左旋转2位得到cdefgab,java实现
2015-03-29 21:32
337 查看
package bianchengart;
/**
*要求:将字符串abcdefg左旋转2位得到cdefgab
* 思路:(递归思想)将字符串分为两部分X=ab Y=cdefg
* 先将X转置得X'=ba
* 再将Y转置得Y'=gfedc
* 最后将(X'Y')转置得cdefg ab
* @author Administrator
*/
public class LeftRotate {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
LeftRotate lr=new LeftRotate();
String s="abcdefg";
String s1=s.substring(0, 2);
String s2=s.substring(2, s.length());
String result="";
String s11=lr.invert1(s1);
String s21=lr.invert1(s2);
result=lr.invert2(s11+s21);
System.out.println(result);
}
/**
* 将String 对象转换为可改变的StringBuffer类对象
然后调用StringBuffer类的reverse()方法实现反转
* @param str
* @return
*/
public String invert1(String str){
StringBuffer sb=new StringBuffer(str);
String s=(sb.reverse()).toString();
return s;
}
/**
* 每次倒序输出一个字符
* @param str
* @return
*/
public String invert2(String str){
String s="";
for (int i = str.length()-1; i>=0; i--) {
s+=str.charAt(i);
}
return s;
}
}
/**
*要求:将字符串abcdefg左旋转2位得到cdefgab
* 思路:(递归思想)将字符串分为两部分X=ab Y=cdefg
* 先将X转置得X'=ba
* 再将Y转置得Y'=gfedc
* 最后将(X'Y')转置得cdefg ab
* @author Administrator
*/
public class LeftRotate {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
LeftRotate lr=new LeftRotate();
String s="abcdefg";
String s1=s.substring(0, 2);
String s2=s.substring(2, s.length());
String result="";
String s11=lr.invert1(s1);
String s21=lr.invert1(s2);
result=lr.invert2(s11+s21);
System.out.println(result);
}
/**
* 将String 对象转换为可改变的StringBuffer类对象
然后调用StringBuffer类的reverse()方法实现反转
* @param str
* @return
*/
public String invert1(String str){
StringBuffer sb=new StringBuffer(str);
String s=(sb.reverse()).toString();
return s;
}
/**
* 每次倒序输出一个字符
* @param str
* @return
*/
public String invert2(String str){
String s="";
for (int i = str.length()-1; i>=0; i--) {
s+=str.charAt(i);
}
return s;
}
}
相关文章推荐
- 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
- 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
- 1.实现一个函数,可以左旋字符串中的k个字符。 AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 2.判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1
- C语言请实现字符串循环右移函数。列如字符串“abcdefghi”向右移2位就是“hiabcdefg”
- 【C语言】请实现字符串循环右移函数。列如字符串“abcdefghi”向右移2位就是“hiabcdefg”
- 剑指Offer 面试题42 左旋转字符串java实现
- 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 * 如把字符串abcdef左旋转2位得到字符串cdefab。
- 剑指Offer面试题42:翻转单词顺序;左旋转字符串 Java实现
- java实现字符串左旋转
- 1.实现一个函数,可以左旋字符串中的k个字符。 AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 2.判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1
- 数据结构与算法分析笔记与总结(java实现)--字符串2:左旋转字符串
- java实现10进制转换为英文字符表示的26进制,得到唯一自增的英文字符串序列。
- 剑指offer----左旋转字符串----java实现
- 算法学习(java实现之字符串)·····旋转字符串
- [每日练习]面试题--判断某个字符串是否为另一个字符串旋转得到的(Java)
- 把字符串abcdef旋转2位得到字符串cdefab
- 编程之法:面试和算法心得(旋转字符串java实现)
- java 面试题:不用库函数实现字符串逆序
- Java里数字转字符串前面自动补0的实现。
- java 实现字符串全角转半角、半角到全角的转换