字符串专题

原创 2018年04月17日 11:37:29

1.1.1 字符串的旋转

题目描述:

将前部的字符子串整体移到字符串的尾部 (abcdef->defabc)

算法思想:

1、采用暴力的解法,每次移动一个字符到末尾,那么一次操作需要移动n个字符(n为字符串长度),若子串长度设为m,共需进行m*n次移位操作。则时间复杂度为O(mn),空间复杂度为O(1)

void LeftShiftOne(char *s, int n){
	char first_word = s[0];
	for(int i = 1; i < n; i++ ){
		s[i-1] = s[i];
	}
	s[n-1] = first_word;
}

void LeftRotateString(char *s, int m){
	while(m--){
		LeftShiftOne(s, 10);
	}
}

2、新时代优秀青年肯定不能使用这种简单低效的解法。于是考虑先将需要移动的子串和剩余子串分别进行反转,再进行整体反转(三步反转法:1、分块 2、子串反转 3、整体反转)

void ReverseString(char*s, int from, int to){//字符串反转算法,切记不要将字符串拆开分别存在数组中,直接用字符指针操作字符串,方便快捷
	char temp;
	while(from < to){
		temp = s[from];
		s[from++] = s[to];
		s[to--] = temp;
	}

}
int main(){
	char text[] = "worldhello";
	ReverseString(text, 0, 4); //三次反转操作
	ReverseString(text, 5, 9);
	ReverseString(text, 0, 9);
	printf("%s", text);
	return 0;
} 



字符串专题小结

字符串专题算是搞得差不多了,来大概总结一下吧。 要掌握的算法: 1、KMP算法 作用是两个串之间的匹配,核心思想是pre[i]表示串B的最长的前缀与以i为结尾的后缀相同,每次匹配失败时,从i跳到pre...
  • u012288458
  • u012288458
  • 2015-12-20 21:43:57
  • 1092

hdu 1020 Encoding(字符串处理)

很水的一道题啊,zhideyi
  • u011639256
  • u011639256
  • 2014-07-21 18:50:07
  • 317

hdu3787 A+B (字符串的处理)

A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...
  • su20145104009
  • su20145104009
  • 2015-07-13 11:09:11
  • 1412

九度oj 专题整理(模拟部分3)

三角形的输入输出问题,我想到了二维数组,在POJ上练习题目的过程中,发现北大对二维数组的考察也是蛮多的,感觉也很有趣,于是学习了几个题目,因为写不出代码,也只能说学习了,简单做一下整理,如果以后有机会...
  • xj13821328013
  • xj13821328013
  • 2017-09-11 19:16:30
  • 96

HDU1860 统计字符【水题+输入输出】

统计字符 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
  • tigerisland45
  • tigerisland45
  • 2017-04-05 18:57:28
  • 662

ACM--贪心入门--完美字符串

51nod题目地址:点击打开链接        约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。 ...
  • qq_26891045
  • qq_26891045
  • 2016-03-22 13:37:13
  • 624

第十五周oj训练—— 字符串处理new(2886)

问题及代码 Description 输入字符串(长度20以内),将字符串中大写字母改为小写字母,其他字符不变,输出改变后的字符串。 Input 一个字符串(长度20以内) Output 输出...
  • mcp3128
  • mcp3128
  • 2016-12-09 19:52:16
  • 142

HDU 专题分类

【背包问题】 2602 Bone Collector 1114 Piggy-Bank 1203 I NEED A OFFER! 1171 Big Event in HDU 105...
  • hellohelloC
  • hellohelloC
  • 2016-05-06 21:02:25
  • 789

字符串专题文档

  • 2012年08月20日 20:18
  • 953KB
  • 下载
收藏助手
不良信息举报
您举报文章:字符串专题
举报原因:
原因补充:

(最多只允许输入30个字)