zoukankan      html  css  js  c++  java
  • 左旋转字符串

    【题目描述】

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

     
    【代码实现】
    实现一:C语言字符操作,技巧性较强
     1 class Solution {
     2 public:
     3     void ReverseString(string &s,int from ,int to)
     4     {
     5         while(from<to)
     6         {
     7             char temp=s[from];
     8             s[from++]=s[to];
     9             s[to--]=temp;
    10         }
    11     }
    12 
    13     string LeftRotateString(string str, int n) {
    14         int len=str.length();
    15         if(len==0)
    16             return "";
    17         n%=len;
    18         ReverseString(str,0,n-1);
    19         ReverseString(str,n,len-1);
    20         ReverseString(str,0,len-1);
    21         return str;
    22     }
    23 };

    实现二:使用string操作函数

     1 class Solution {
     2 public:
     3     string LeftRotateString(string str, int n) {
     4         int len=str.length();
     5         if(len==0)
     6             return "";
     7         n%=len;
     8         str+=str;      
     9         return str.substr(n,len);
    10     }
    11 };
  • 相关阅读:
    关于java异常处理的自我学习
    html学习
    java第七周动手动脑
    作业
    动手动脑
    我要建立自己的java代码仓库
    第三周作业
    day0319 模块
    day0318装饰器和内置函数
    day0315 迭代器
  • 原文地址:https://www.cnblogs.com/lou424/p/5029214.html
Copyright © 2011-2022 走看看