北京7月暑假班第2次课:回文子串-KMP等若干问题的讨论_邹博分析
回文子串-KMP等若干问题的讨论 邹博 2014年7月19日 字符串循环左移 给定一个字符串S[0…N-1],要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”:即字符串循环左移k。 算法要求: 时间复杂度为 O(n),空间复杂度为 O(1)。 问题分析 暴力移位法 每次循环左移1位,调用k次即可 时间复杂度O(kN),空间复杂度O(1) 三次拷贝 S[0…k] → T[0…k] S[k+1…N-1] → S[0…N-k-1] T[0…k] →S[N-k…N-1] 时间复杂度O(N),空间复杂度O(k) 优雅一点的算法 (X’Y’)’=YX 如:abcdef X=ab X’=ba Y=cdef Y’=fedc (X’Y’)’=(bafedc)’=cdefab 时间复杂度O(N),空间复杂度O(1) Code 字符串的全排列 给定字符串S[0…N-1],设计算法,枚举A的全排列。 递归算法 以字符串1234为例: 1 – 234 2 – 134 3 – 214 4 – 231 递归Code 如果字符有重复 去除重复字符的递归算法 以字符1223为例: 1 – 223 2 – 123 3 – 221 带重复字符的全排列就是从第一个字符起每
您可能关注的文档
最近下载
- 失语症的评定课件.pptx VIP
- 铁路工务信息综合管理平台建设方案.docx VIP
- 失语症评定郑若楠课件.pptx VIP
- 2026年境外人员住宿登记方案.docx VIP
- 2025年(游戏艺术设计)游戏测试技术试题及答案.doc VIP
- 电线电缆质检员检验工历年考试培训基础知识试题及答案.docx VIP
- 浏河小学党风廉政风险防范措施.docx VIP
- 超星尔雅学习通《大数据与人工智能导论(厦门大学)》章节测试附答案 .pdf VIP
- 专题14 选择性必修3:文化交流与传播(知识清单)(全国通用)2026年高考历史一轮复习讲练测.pdf VIP
- 10以内加减法口算100题(可直接打印).pdf VIP
原创力文档

文档评论(0)