编程理解——翻转前k个字符
来源:互联网 发布:javlibrary新域名 12 编辑:程序博客网 时间:2024/06/07 06:13
题目:给定一个字符串s和整形数字k,需要将2k个字符中前k个字符进行翻转。当剩余字符不足k个时,翻转全部字符;当剩余的字符数大于等于k并小于2k时,则翻转前k个字符,剩余字符保持原状。字符串中只包含英文小写字母,长度不超过10000.
输入:字符串s和整形数字k
输出:翻转后的字符串
示例1:输入:abcdefg 2 输出:bacdfeg
(我自己补充的)示例2:输入:abcd 2 输出:bacd
示例3:输入 abc 4 输出:cba
那就2k为一个单元的翻转,剩余的在判断属于哪一种情况。
我的代码如下:
#include <iostream>#include <string>using namespace std;void kreverse(string &str,int start,int k){if(k<0) return;int end=start+k-1;while(start<end){swap(str[start],str[end]);start++;end--;}}int main(){string s;int k;cin>>s;cin>>k;int len=s.length();int i=0;while(i<=len-2*k){kreverse(s,i,k);i=i+2*k;}if(len-i<k) kreverse(s,i,len-i);else if((len-i>=k)&&(len-i<2*k)) kreverse(s,i,k);else ;cout<<s<<endl;cin.get();cin.get();return 0;}测试用例全部通过!!
阅读全文
0 0
- 编程理解——翻转前k个字符
- 翻转单链表中的K个节点——By Java
- 链表K个节点翻转
- 链表--链表K个翻转
- 链表K个节点翻转
- 给定一个字符串和一个整数k,对字符串开头算起的每2k个字符的前k个字符进行反转。 如果还有少于k个字符,则将其全部撤消。 如果小于2k但大于或等于k个字符,则反转前k个字符,
- 链表翻转,每k个进行翻转
- Leetcode017--链表k个结点一组翻转
- 编程算法 - K链表翻转
- 由翻转字符窜再次理解递归
- 寻找前k个最小元素——用最小堆实现…
- 返回前n个字符
- LINTCODE——K组翻转链表
- JavaScript编程实现字符和字符串翻转
- 算法练习——前K小数
- 编程练习——字符串翻转
- C编程—单链表的翻转
- 编程之法—实现单词翻转
- export.source定义的变量的作用域
- JZOJ 5390. 【NOIP2017提高A组模拟9.26】逗气
- BBB学习(一):BBB相关文档及链接(实时更新)
- C语言中手把手教你动态内存分配
- 图像处理自适应滤波
- 编程理解——翻转前k个字符
- JSP页面调用接口发送JSON格式数据
- JAVA Freemarker(6)--自定义指令
- Git--将已有的项目添加到github
- hihocoder 1591
- 算法与数据结构
- 开发中遇到的hibernate异常:a different object with the same identifier value was already associated with the
- BZOJ1500: [NOI2005]维修数列(平衡树)
- 12.笔记go语言——垃圾回收