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

     1 //参考书籍:编程之法
     2 
     3 #include <stdio.h>
     4 char* leftRotateString(char *s, int n, int m);
     5 int main(int argc, const char * argv[]) {
     6     
     7     char s[] = "abcde";
     8     printf("旋转2位字符串位为%s
    ",leftRotateString(s, 5, 2));
     9     return 0;
    10     
    11 }
    12 
    13 
    14 /**
    15  字符串的蛮力旋转  较优的方法下次更新
    16  
    17  @param s 字符串
    18  @param n  字符串的长度
    19  */
    20 void leftShiftOne(char *s, int n){
    21     
    22     //保存第一个字符串
    23     char t = s[0];
    24     for (int i = 1; i < n; i++) {
    25         //往前挪
    26         s[i-1] = s[i];
    27     }
    28     // "最后一位" 赋值为 "第一位" 的值
    29     s[n-1] = t;
    30     
    31 }
    32 
    33 
    34 /**
    35  把长度为n的字符串的 m 位进行旋转操作
    36  
    37  @param s 字符串s
    38  @param n 字符串s的长度
    39  @param m 字符串s要旋转的位数
    40  
    41  @return 返回旋转的结果
    42  */
    43 char* leftRotateString(char *s, int n, int m){
    44     while(m--){
    45         leftShiftOne(s, n);
    46     }
    47     return s;
    48 }
    我会不定期分享 iOS 相关技术文章
  • 相关阅读:
    怎么获取数组中的对象的某一项之和
    原型链
    js的事件循环(Eventloop) 机制/js的宏任务微任务执行顺序
    怎么替换数组中对象的属性
    求对象所有值的和
    sequelize中duplicating:false的使用
    WebSocket
    轮播

    ssl tsl
  • 原文地址:https://www.cnblogs.com/ITCoderW/p/6163168.html
Copyright © 2011-2022 走看看