每日一题--翻转单词顺序||左旋转字符串
2017-09-16 15:34
218 查看
解题思路:
翻转单词顺序:先将整个字符串翻转,再翻转各个单词
eg: I am a student. ——–> .tenduts a ma I —-> students. a am I
左旋转字符串:分成两部分:两部分分别旋转,再整体旋转得到结果
eg: abcdefg —–> bagfedc ———> cdefgab
代码:
翻转单词顺序:先将整个字符串翻转,再翻转各个单词
eg: I am a student. ——–> .tenduts a ma I —-> students. a am I
左旋转字符串:分成两部分:两部分分别旋转,再整体旋转得到结果
eg: abcdefg —–> bagfedc ———> cdefgab
代码:
/**问题描述:翻转单词顺序 * 输入:I am a student. * 输出:student. a am I * Created by lxq on 2017/9/16. */ public class Problem6 { public static void main(String[] args){ Problem6 problem6 = new Problem6(); String str = "I am a Student."; problem6.reverseSentences(str); } public void reverseSentences(String sentence){ if(sentence==null) return; //字符串数组 String[] str = sentence.split(" "); StringBuilder builder = new StringBuilder(); for(int i=str.length-1;i>0;i--){ builder.append(str[i]+" "); } builder.append(str[0]); System.out.println(builder); } }
public void leftString(String sentences,int index){ if(sentences==null||index>sentences.length()||index<0) return; String[] str = {sentences.substring(0,index),//不包含endIndex上的数字 sentences.substring(index,sentences.length())}; StringBuilder builder = new StringBuilder(); for(int i=str.length-1;i>=0;i--){ builder.append(str[i]); } System.out.println(builder.toString()); }
public void leftString(String sentences,int index){ if(sentences==null||index>sentences.length()||index<0) return; String[] str = {sentences.substring(0,index),//不包含endIndex上的数字 sentences.substring(index,sentences.length())}; StringBuilder builder = new StringBuilder(); //对子串进行旋转 for(String s:str){ builder.append(reverse(s)); } //对整个字符串进行旋转 System.out.println(reverse(builder.toString())); } //对字符串进行旋转 private String reverse(String s) { char[] chars = s.toCharArray(); for(int i=0;i<(chars.length+1)/2;i++){ char temp = chars[i]; chars[i] = chars[chars.length-1-i]; chars[chars.length-1-i] = temp; } return String.valueOf(chars); }
相关文章推荐
- 剑指offer-面试题42:翻转单词顺序VS左旋转字符串
- 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
- 左旋转字符串LeftRotateString -- 翻转单词顺序
- 翻转单词顺序&左旋转字符串
- 《剑指Offer》学习笔记--面试题42:翻转单词顺序VS坐旋转字符串
- 面试题46:翻转单词顺序VS左旋转字符串
- 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)
- 剑指offer 42 - 翻转单词顺序 左旋转字符串
- 【面试题042】翻转单词顺序VS左旋转字符串
- [剑指offer][面试题42]翻转单词顺序 VS 左旋转字符串
- 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)
- 面试算法(四十二)翻转单词顺序VS左旋转字符串
- 42.翻转单词顺序VS左旋转字符串
- 翻转单词顺序 VS 左旋转字符串
- 剑指offer之面试题42翻转单词顺序VS左旋转字符串
- 剑指offer:翻转单词顺序VS左旋转字符串(java)
- Q42:翻转单词顺序VS左旋转字符串
- 【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
- 剑指Offer——翻转单词顺序VS左旋转字符串
- 翻转单词顺序VS左旋转字符串