字符串

作者: FifiZhuang | 来源:发表于2017-07-05 11:23 被阅读0次

字符串循环左移问题

  • 1 问题描述:给定一个字符串S[0...N-1],要求把S的前k个字符移到S的尾部,如把S的字符串“abcded"前面的前两个字符“a”,“b”移到字符串的尾部,得到新字符串“cdefab”,即字符串循环左移2位。
  • 2 算法要求:时间复杂度为O(n),空间复杂度为O(1)。
  • 3 解题思路:三次翻转字符串解法比暴力求解复杂度小,
    假设

X='ab'
Y='cdef '
X ' = 'ba'
Y ' = ' fedc '
( X ' Y ' ) ' = ' cdefab

  • 4 代码
    #include<stdio.h>
    void reverseString(char s, int from , int to)
    {
    while(from<to)
    {
    char t = s[from];
    s[from++] = s[to];
    s[to--] = t;
    }
    }
    void leftRotateString(char
    s, int n, int m)
    {
    m %= n;
    reverseString(s,0,m-1);
    reverseString(s,m,n-1);
    reverseString(s,0,n-1);
    }
    int main()
    {
    char str[] = "abcdef";
    printf("The string:%s\n", str);
    leftRotateString(str, 6, 2);
    printf("After left shift:%s\n", str);
    return 0;
    }
  • 5 该问题可作为完美洗牌算法的子算法,未完待续......

相关文章

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

  • C++基础字符串

    字符串的构造 字符串特性描述 字符操作 字符串赋值 字符串连接 字符串比较 字符串查找 字符串替换 字符串删除 字...

  • iOS中的NSString与NSMutableString

    字符串的创建 字符串读写 字符串的比较 字符串的搜索 字符串截取 字符串替换 字符串与路径 字符串转换 NSMut...

  • iOS NSString用法总结

    字符串属性 字符串截取 字符串比较 字符串搜索 字符串拼接 字符串基本类型转换 字符串分行,分段 字符串列举(按条...

  • php 字符串常见方法汇总

    字符串拼接 字符串检索 字符串截取 字符串替换 字符串大小写转化 字符串转数组 字符串格式化

  • iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iO

    iOS之字符串截取、iOS 字符串替换、iOS字符串分隔、iOS之字符串匹配、截取字符串、匹配字符串、分隔字符串 ...

  • PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

    常用字符串函数分类: 字符串长度, 字符串查找, 字符串大小写转换, 字符串截取, 字符串 ASCII, 字符串加...

  • Kotlin语言(二):字符串类型

    1、字符串定义 2、字符串删除空格 3、字符串比较 4、字符串切割 5、字符串截取 6、字符串替换 7、字符串模板

  • 字符串扩展

    求字符串大小 字符串解码、转换 字符串截取 字符串汉字处理 字符串 Mac地址 字符串进制转换

  • 2020-09-30字符串

    day8-字符串 字符串的操作 in 和 not in字符串1 in 字符串2 - 判断字符串1是否是字符串...

网友评论

      本文标题:字符串

      本文链接:https://www.haomeiwen.com/subject/khofhxtx.html