字符串

题目一:

如果一个字符串 str ,把字符串 str 前面的任意部分挪到后面去形成的字符串叫做 str 的旋转词。比如 str = “ 1234 ” , 那么 str 的旋转词有 “ 1234 ” , “ 2341 ” , “ 3412 ” , “ 4123 ” 。给定两个字符串 a 和 b ,请判断 a 和 b 是否互为旋转词?

举例:

a = ” cdab ” , b = ” abcd ” 。返回 true。

a = ” 1ab2 ” , b = ” ab12 ” 。返回 false。

a = ” 2ab1 ” , b= ” ab12 ” 。 返回 true。

思路:

最优解时间复杂度为 O(N)

  • 先判断字符串 a 和 b 是否长度相等。
  • 如果长度相等,生成 a + a 的大字符串。
  • 然后判断大字符串中是否包含 b 字符串。(使用 kmp 算法判断)如果大字符串中包含字符串 b ,那么字符串 a 和 b 就互为旋转词。

举例:

a = ” 1234 “

a + a = ” 12341234 “

很明显发现,如果字符串 a 的长度为 N,在 a + a 的大字符串中,任意一个长度为 N 的子串都是 a 的旋转词。


题目二:

给定一个字符串 a, 请在单词间做逆序调整。

举例:

” pig loves dog ” 逆序成 ” dog loves pig ” 。

” I’m a student. ” 逆序成 ” student. a I’m ”

思路:

  • 实现将字符串局部所有字符逆序的函数 f
  • 利用 f 将字符串所有字符逆序
  • 找到逆序后的字符串中每一个单词的区域,利用 f 将每一个单词的区域逆序


题目三:

给定一个字符串 a 和一个整数 i。N为字符串的长度,i 为 a 中的位置,将 a [ 0 … i ] 移到右侧,a [ i + 1 … N - 1 ]移到左侧。

举例:

a = ” ABCDE ” ,i = 2 。将 str 调整为 ” DEABC ” 。

要求:时间复杂度为 O(N),额外空间复杂度为 O(1)。

思路:

  • 先将 a[ 0 … i ] 部分的字符逆序

  • 再将 a[ i + 1 … N - 1 ] 部分的字符逆序

  • 最后将整体的字符 a 逆序


题目四:

给定一个字符串类型的数组 strs,请找到一种拼接顺序,使得将所有的字符串拼接起来组成的大字符串是所有可能性中字典顺序最小的,并返回这个字符串。

举例:

strs = [ ” abc ” , ” de ” ],可以拼接成 ” abcde “,也可以拼接成 ” deabc “,但是前者的字典顺序更小,所以返回 ” abcde ” 。

strs = [ ” b “, ” ba ” ], 可以拼接成 ” bba “, 也可以拼接成 ” bab “,但是后者的字典顺序更小,所以返回 ” bab “。

思路:

最优解的时间复杂度O(N*logN),其实质是一种排序的实现。

方案二中是比较两个字符串彼此拼接后的字典顺序,所以能成功。

【字符串】字符串逆序相关推荐

  1. 2019递归实现字符串的逆序存储(C++)

    描述 写一个递归算法来实现字符串的逆序存储,要求空间复杂度为O(1). 输入 多组数据,每组数据有一行,为要求逆序存储的字符串.当输入字符串为"0"时,输入结束. 输出 对于每组数 ...

  2. C++实现包含空格、标点、字符、数字的字符串的逆序输出,并且还可以实现一句语言中每个单词的倒序输出

    简介:本C++代码能够实现任意输入的字符的逆序输出,代码的后半部分可以实现一句英文语句的单词的倒序输出. #include <iostream> #include <string&g ...

  3. 逆序字符串 和 字符串的逆序输出 的区别~

    今天我们讲解字符串的逆序和逆序输出,并且通过一个综合题型来加深印象和练手! 超佳出品 文章目录 前言 一.逆序字符串,字符串的逆序输出是什么? 二.实例讲解 1.字符串的逆序输出 2.逆序字符串 总结 ...

  4. 输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

    输入一个字符串,对该字符串进行逆序,输出逆序后的字符串. 输入格式: 输入在一行中给出一个不超过80个字符长度的.以回车结束的非空字符串. 输出格式: 在一行中输出逆序后的字符串. 输入样例: Hel ...

  5. 怎么样去掉scratch中的字符串的第一个字符?/scratch巧妙去掉字符串数最开头0/字符串算法操作/字符串的逆序/变量逆序

    起因是一个朋友在群里问了一个问题:scratch中如何巧妙的去掉一串字符数最开头的0? 我想了一下好像没有什么好办法,当然如果这个字符串是纯数字,可以用下面这种方式去除第一个字符0. 首先我们省去判断 ...

  6. 使用C语言实现字符串的逆序输出

    使用C语言实现字符串的逆序输出 方法1: #include<stdio.h> #include<string.h>void reverse(char *s){int n = 0 ...

  7. 如何快速实现数组/字符串的逆序(用reverse函数实现)

    逆序,字面意思,就是把一个数组或字符串的每个元素反过来输出,reverse函数可以将数组,字符串,等直接返回它的逆序,在解一些题中也十分方便.虽然逆序也是较为常用的功能,但如果自己一字一句去写还是比较 ...

  8. 输入一个字符串,逆序并输出

    输入一个字符串,然后逆序这个字符串并输出 代码及运行结果如下: #include <stdio.h> #include <string.h> int main() {char ...

  9. 7-20 字符串逆序 输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

    输入格式: 输入在一行中给出一个不超过80个字符长度的.以回车结束的非空字符串. 输出格式: 在一行中输出逆序后的字符串. 输入样例: Hello World! 结尾无空行 输出样例: !dlroW ...

  10. 字符串逆序输出c语言,5、输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。...

    举例: #include int main() { int i, j, cnt; char ch, a[80], b[80]; ch=getchar(); for(i=0; ch!='\n'; i++ ...

最新文章

  1. 商淘多b2b2c商城系统怎么在个人电脑上安装_B2B2c商城系统怎么选?开源和定制哪个好?...
  2. opencv-视频处理-实时的前景检测-Vibe算法
  3. C++中了类继承和调用父类的构造函数方法
  4. PHP10段常用功能代码
  5. [图] DevOps:提速从研发到交付流程
  6. 【51单片机快速入门指南】4.4.1:python串口接收磁力计数据并进行最小二乘法椭球拟合
  7. [css] 什么是hack?css的hack有哪些?
  8. 史上最全ClassLoader总结
  9. javase-字符串次数查找
  10. C中无警告输出size_t的值
  11. git 使用代理加速
  12. uclinux和linux的使用区别,基于uClinux和Linux的对比分析
  13. markdown文档:一个简单标记语言的使用及GitHub实际应用
  14. uniapp,从文件流获取图片地址,并展示图片
  15. qlv转mp4失败 解决方法
  16. python画正八边形的代码_Python 代码风格 和 PEP8【转】
  17. matlab截取5到10秒音频,如何截取音频中的一段
  18. 存储技术(一)-基本概念和技术发展
  19. windows画图常用函数
  20. Python turtle绘制——癸卯(兔)年卯兔图

热门文章

  1. 联想全系列 Lenovo ThinkPad ThinkBook Thinkcenter ThinkStation 原厂恢复系统
  2. 关于bios+mbr还原uefi+gpt的系统后,出现进不去系统的问题
  3. android获取安卓版本,怎么获取android系统当前版本
  4. Android 选择图片、上传图片之PictureSelector
  5. 图片像素大小怎么调整,批量调整图片像素
  6. 42u的机柜供服务器安装位置,一个42U标准服务器机柜能放多少台服务器
  7. 零基础怎么学习平面设计,学习平面设计需要多久?
  8. vue项目将localhost改成自己的ip访问
  9. DTL(Django templeate language)
  10. notepad拼心形_Excel心形函数v1.0 免费版