将一个字符串的大写字母放到字符串的后面,各个字符串的相对顺序不改变,不能申请额外空间 左旋字符串的应用
来源:互联网 发布:基于内容的推荐算法 编辑:程序博客网 时间:2024/05/17 01:23
http://blog.csdn.net/w397090770/article/details/8030317#cpp
题目以及要求:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
我的实现类似冒泡排序。
以下是我的代码可以参考:
void reverseString(char *str,int len){if(len<=0)return;swap(str[0],str[len]);reverseString(str+1,len-2);}void Left(char *str,int idx,int len){reverseString(str,idx);reverseString(str+idx+1,len-idx-1);reverseString(str,len);}bool isDaXie(char str){if(str-'A'>=0&&str-'Z'<=0)return true;elsereturn false;}void Test_1(char *str,int len){int s=0;while(len>=0){if(isDaXie(str[len])){//是大写s++;Left(str+len,0,strlen(str)-len-s);}elselen--;}}int main(){char str[]="aFDdQeEcc"; //aeaccFDE//Left(str,2,strlen(str)-1);//cout<<str<<endl;Test_1(str,strlen(str)-1);cout<<str<<endl;return 0;}
以下是博主的代码:
#include <stdio.h>#include <string.h>//Author: 397090770//E-mail:wyphao.2007@163.com//Date: 2012/09/29 //题目以及要求:把一个字符串的大写字母放到字符串的后面,//各个字符的相对位置不变,不能申请额外的空间。 //判断是不是大写字母 int isUpperAlpha(char c){if(c >= 'A' && c <= 'Z'){return 1;}return 0; }//交换两个字母 void swap(char *a, char *b){char temp = *a;*a = *b;*b = temp;} char * mySort(char *arr, int len){if(arr == NULL || len <= 0){return NULL;}int i = 0, j = 0, k = 0;for(i = 0; i < len; i++){for(j = len - 1 - i; j >= 0; j--){if(isUpperAlpha(arr[j])){for(k = j; k < len - i - 1; k++){swap(&arr[k], &arr[k + 1]);}break;}//遍历完了字符数组,但是没发现大写字母,所以没必要再遍历下去if(j == 0 && !isUpperAlpha(arr[j])){//goto over; return arr;}}}//over: return arr;}int main(){char arr[] = "aaaaaaaaaaaaaaaaaaaaaaaAbcAdeBbDc";printf("%s\n", mySort(arr, strlen(arr)));return 0;}
- 将一个字符串的大写字母放到字符串的后面,各个字符串的相对顺序不改变,不能申请额外空间 左旋字符串的应用
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面 ,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- [面试算法]把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间
- 将一个字符串中的大写字母放到小写字母的后面,而且移动后相对顺序不改变
- 在一个字符串中把大写字母放到字符串中小写字母的后面(不能改变字母的相对位置)
- 不申请额外空间调整字符串大小写顺序,大写字母依次放到后面
- 腾讯2017年实习生编程题目(第二题)----2.算法基础-字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
- 字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗? 输入描述: 输入数据有多组
- 腾讯 2017 暑假实习生编程题(二):小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗?
- 把字符串的大写字母放到字符串的后面
- [Win32]一个调试器的实现(八)单步执行
- c++基本能力要求
- type_traits
- opencv+vs2010配置
- 云架构师:云端的舞者
- 将一个字符串的大写字母放到字符串的后面,各个字符串的相对顺序不改变,不能申请额外空间 左旋字符串的应用
- Android Google Map API 开发基础知识
- PathFindFileName函数,由文件路径获得文件名
- O'Reilly - Monitoring with Ganglia Nov 2012 PDF ePub
- ${pageContext.request.contextPath}的作用
- 设计一个简易的处理器(3)--SEQ CPU的实现(1): 将指令组织成阶段
- Cocoa2d-X学习笔记第三篇:基础数据结构
- 寒假前刷题(5)搜索系列 bfs poj 1426
- struts1出现DispatchMapping[0] does not define a handler错误处理