• 左旋转字符串


    【题目描述】

        汇编语言中有一种移位指令叫做循环左移(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 };
  • 相关阅读:
    创建可视化优秀网站的40个精美jquery插件推荐
    究极程序员跨过的艰难六步
    编写可移植的PHP代码
    程序员如何保持优秀
    网站安全检查列表
    PHP之谈(四)——smarty模板的学习
    PHP
    弱校ACM奋斗史
    学习PHP重在坚持
    About Me
  • 原文地址:https://www.cnblogs.com/lou424/p/5029214.html
Copyright © 2020-2023  润新知