翻转字符串中的子串
来源:互联网 发布:手机数据恢复软件 破解 编辑:程序博客网 时间:2024/05/18 03:37
编写程序,在原字符串中把字符串尾部的m个字符移动到字符串的头部, 要求:长度为n的字符串操作时间复杂度为O(n),空间复杂度为O(1)。
例如,原字符串为”Ilovebaofeng”,m=7,输出结果为:”baofengIlove”。
#include <stdio.h>
#include <stdlib.h>
void reverseString(char* s, int prev, int end) {
while (prev < end) {
char c = s[prev];
s[prev++] = s[end];
s[end--] = c;
}
}
int main(void) {
setvbuf(stdout, NULL, _IONBF, 0);
char s[] = "Ilovebaofeng";
int length = strlen(s);
printf("input index from last to move:\n");
int i = 7;
scanf("%d", &i);
reverseString(s, 0, length - i - 1);
reverseString(s, length - i, length - 1);
reverseString(s, 0, length - 1);
puts(s);
return EXIT_SUCCESS;
}
0 0
- 翻转字符串中的子串
- 字符串子串翻转
- Java中的字符串翻转
- Java中的字符串翻转
- 翻转字符串中的单词
- 翻转字符串中的单词
- 翻转字符串中的单词
- 翻转字符串中的单词
- Java中的字符串翻转
- 翻转子串(思路:假定两个字符串已经是翻转)
- 字符串翻转(顺序翻转,每个子字符串顺序不变)
- string字符串的翻转---(子字符串不翻转)问题
- 翻转子串
- 翻转子串
- 翻转子串(Java)
- 翻转子串
- 翻转子串
- 牛客网 | 翻转子串
- 浅析Spring IoC源码(十一)Spring refresh()方法解析后记2
- I / O 流
- C++——tarjan模板
- 使用Intellij创建第一个Springboot程序
- git使用
- 翻转字符串中的子串
- Shiro简介
- [FAQ18419][audio speech]通话免提模式如何使用副mic
- 4.C#:string.Split 和 string.Join
- 浅析Spring AOP源码(十二) AOP概念理解
- gdb调试多进程和多线程命令
- ListView与Checkbox的结合来使用中出现假选的解决方案
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- Android FragmentPagerAdapter数据刷新notifyDataSetChanged没效果研究或不执行OnCreatView方法导致界面不刷新