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 相关技术文章
  • 相关阅读:
    01.mp4v2应用—mp4转h264
    00.mp4v2工具的用法
    交叉编译x264和ffmpeg
    pcm2aac
    保存一下东西
    05.移植内核3.4.2
    04.移植u-boot
    03.应用程序调试
    关于 jxl 下载 excel (java)
    JXL 对excle 操作(单元格合并,列宽,格式等)
  • 原文地址:https://www.cnblogs.com/ITCoderW/p/6163168.html
Copyright © 2011-2022 走看看