剑指offer(四十二)之左旋转字符串

题目描述

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

<span style="color:#33cc00;">public class Solution {
    public String LeftRotateString(String str,int n) {
        if(str.trim().length()==0){
            return str;
        }
        StringBuilder rol=new StringBuilder();
        rol.append(str.substring(n));
        rol.append(str.substring(0,n));
        return rol.toString();
    }
}
</span>
时间: 2024-10-08 07:21:27

剑指offer(四十二)之左旋转字符串的相关文章

剑指offer-翻转单词顺序VS左旋转字符串

题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字啊的顺序不变.为简单起见,标点符号和普通字母一样处理. 举例说明 例如输入字符串”I am a student. ”,则输出”student. a am I”. 解题思路 第一步翻转句子中所有的字符.比如翻转“I am a student. ”中所有的字符得到”.tneduts a m a I”,此时不但翻转了句子中单词的顺序,连单词内的字符顺序也被翻转了.第二步再翻转每个单词中字符的顺序,就得到了”student. a am I”.这正

剑指offer(六十二)之二叉搜索树的第k个结点

题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 代码: <span style="color:#cc33cc;">/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val;

剑指offer(四十六)之树的子结构

题目描述 输入两颗二叉树A,B,判断B是不是A的子结构. 思路: 1.首先设置标志位result = false,因为一旦匹配成功result就设为true,剩下的代码不会执行,如果匹配不成功,默认返回false 2.递归思想,如果根节点相同则递归调用isSubTree(),如果根节点不相同,则判断tree1的左子树和tree2是否相同,再判断右子树和tree2是否相同 3.注意null的条件,HasSubTree中,如果两棵树都不为空才进行判断,isSubTree中,如果Tree2为空,则说明

【剑指offer】十二,二叉树的镜像

题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 分析:镜像的递归定义就是将原有二叉树中节点的左右子树对调.代码如下: 1 /** 2 public class TreeNode { 3 int val = 0; 4 TreeNode left = null; 5 TreeNode right = null; 6 7 public TreeNode(int val) { 8 this.val = val; 9 10 } 11 12 } 13 */ 14 public class Solut

剑指offer(四十)之整数中1出现的次数(从1到n整数中1出现的次数)

题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数. 代码1: <span style="color:#6600cc;">public class Solution { public int NumberOf1Between1AndN_S

剑指offer(五十二)之对称的二叉树

题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 代码: <span style="color:#000099;">/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public cla

剑指offer(四十九)之二叉树中和为某一值的路径

题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 代码: <span style="color:#000099;">import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(

剑指offer(四十八)之复杂链表的复制

题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点). 代码: <span style="color:#000099;">import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; public class Solution { public RandomListNod

剑指offer(四十五)之二叉树的深度

题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 代码: <span style="color:#993399;">public class Solution { public int TreeDepth(TreeNode pRoot){ if(pRoot==null) return 0; return getDepth(pRoot,0); } private int getDepth(Tre