• 剑指offer——左旋转字符串


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

    解题思路:

    abc——>cba

    XYZdef——>fedZYX

    abcXYZdef——>cbafedZYX

    cbafedZYX——>XYZdefabc

     1 public class Solution {
     2     public String LeftRotateString(String str,int n) {
     3         char[] chars = str.toCharArray();        
     4         if(chars.length < n) return "";
     5         reverse(chars, 0, n-1);
     6         reverse(chars, n, chars.length-1);
     7         reverse(chars, 0, chars.length-1);
     8         StringBuilder sb = new StringBuilder(chars.length);
     9         for(char c:chars){
    10             sb.append(c);
    11         }
    12         return sb.toString();
    13     }
    14      
    15     public void reverse(char[] chars,int low,int high){
    16         char temp;
    17         while(low<high){
    18             temp = chars[low];
    19             chars[low] = chars[high];
    20             chars[high] = temp;
    21             low++;
    22             high--;
    23         }
    24     }
    25 }
  • 相关阅读:
    webNav
    keyBoardValue
    认证,权限,频率
    路由组件与视图集中附加action的声明
    视图组件
    请求与响应
    DRF序列化组件
    DRF入门及安装
    后台管理
    auth认证模块
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10878008.html
Copyright © 2020-2023  润新知