题目:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间

分别转自:

https://blog.csdn.net/z174432/article/details/79815088

https://blog.csdn.net/inite/article/details/79634900

https://blog.csdn.net/weixin_40149887/article/details/79749542

链接:https://www.nowcoder.com/questionTerminal/7e8aa3f9873046d08899e0b44dac5e43?toCommentId=2563077
来源:牛客网//用两个指针,从后往前遍历,遇到大写字母就与后面的小写字母交换到最后。#include<bits/stdc++.h>
using namespace std;
string arrange(string s){int len=s.length();int r=len-1, l=r-1;;while(l>=0 && r>=0){while(isupper(s[r]) && r>=0) --r;while(!isupper(s[l])&& l>=0) --l;if(r>=0 && l>=0){for(int i=0; i<r-l; ++i)swap(s[l+i], s[l+i+1]);}--l;}returns;
}int main(){ string s;while(cin >> s){cout << arrange(s) << endl;}}
#include <iostream>
#include <cmath>
using namespace std;int is_up(char a) {return a >= 'A' && a <= 'Z';
}int is_low(char a) {return a >= 'a' && a <= 'z';
}int main() {string A;cin >> A;int N = A.size(), up = N - 1;  //  up从后往前遍历字符串while (up >= 0) {while (up >= 0 && is_low(A[up])) {  // 找到第一个字符是大写字母--up;}if (up < 0) {   // 注意边界break;}for (int i = up + 1; i < N; i++) {  // 反复和邻位小写字符交换if (is_up(A[i])) {              // 直到邻位是一个大写字母--up;                       // 更新up-----up前移break;}char t = A[i];                  // 交换A[i] = A[i-1]; A[i-1] = t;}if (up == N-1) {                   // 如果最后up是最后一位字符--up;                          // 需要更新up}}cout << A << endl;
}

python版

#coding=utf-8
def houyi(nums):i=len(nums)-1j=len(nums)-1while i>=0 and j>=0:while ord(nums[j])>=65 and ord(nums[j])<=90: j=j-1while ord(nums[i])>=97:i=i-1if i<j:nums.insert(j,nums.pop(i))i=i-1
s='AkleBiCeilD'
s=list(s)
houyi(s)
for i in s:print(i,end='')

另一c++版本

#include <iostream>
#include <queue>
using namespace std;
int main()
{char str[1200];while (scanf("%s",str)!=EOF){queue<char> pqA, pqa;//使用队列分别存储大写字母和小写字母。for (int i = 0; str[i]; ++i){if ('A' <= str[i] && str[i] <= 'Z'){pqA.push(str[i]);}else{pqa.push(str[i]);}}int j = 0;while (!pqa.empty()){str[j++] = pqa.front();pqa.pop();}while (!pqA.empty()){str[j++] = pqA.front();pqA.pop();}cout << str << endl;}return 0;
}

字符移动,大写字母后移且保持相对位置不变、调整顺序奇数位于偶数之前相关推荐

  1. java 输入一串字符统计大写字母个数小写字母个数及特殊符号并输出

    ```java//输入一串字符统计大写字母个数小写字母个数及特殊符号并输出public static void test5(String str){char[] s = str.toCharArray ...

  2. 从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。

    输入要求 输入一个字符. 输出要求 如果该字符是大写字母,则输出"upper":若是小写字母,则输出"lower":若是数字字符,则输出"digit& ...

  3. if-else 判断输出的字符是大写字母、小写字母、数字或者其他类型

    if-else判断输出的字符是大写字母.小写字母.数字.或者其他类型 #include<stdio.h> void main(){char c;printf("input a c ...

  4. C语言经典例98-将字符转为大写字母并写入文件

    目录 1 题目 2 分析 3 实现 1 题目 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存. 输入的字符串以!结束. 2 分析 写入 ...

  5. 字符移位(将大写字母移到字符串尾部并不改变相对顺序)

    题目描述:小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间. 你能帮帮小Q吗? 输入数据有多组,每组包含一个字符串s,且保证:1<=s ...

  6. 【C#基础】输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. 从键盘读入一个字符,如果该字符是大写字母则转小写,如果该字符是小写字母则转大写,如果不是字符则输出不是字母。

    #include<stdio.h> int main() { char a; printf("请输入一个字符\n",a); scanf("%c",& ...

  8. 8-32个字符,大写字母、小写字母、数字、特殊字符4类中至少3类 亲测

    public static boolean containsNewPassWord(Object obj) { Pattern pattern = Pattern.compile("(?![ ...

  9. c语言如何将字母向下移一格,c语言 如何将一个字符串的前n个字母后移至尾,其他的按顺序前移?...

    满意答案 zhaoa898 2014.02.03 采纳率:47%    等级:11 已帮助:12380人 int i,j,k; char temp; for(j=0;j temp=w[j];//此处有 ...

最新文章

  1. 哈勃望远镜进一步确认宇宙在加速膨胀
  2. torch 归一化,momentum用法详解
  3. 关于Nowpaper
  4. ie6和ie7两个div之间有空隙
  5. 电子商务(电销)平台中用户模块(User)数据库设计明细
  6. 【CyberSecurityLearning 56】自动化注入
  7. php 离线 gis,在 Web 页面中使用离线地图
  8. P2513-[HAOI2009]逆序对数列【dp,前缀和】
  9. 展望未来计算机可以分为哪几种类型,大学计算机基础-计算机概述.ppt
  10. 如何把大咖的知识,内容、思维,瞬间变成你的知识内容思维的秘诀
  11. python可以给你干什么-Python可以用来做什么 为你揭开python神秘面纱
  12. .NET应用程序调试—原理、工具、方法
  13. wordpress建立php站点地图,WordPress站点地图(sitemap)制作方法(免插件)
  14. 谷歌-安卓系统使用必读,什么是root, Recovery, Radio, APP TO SD, Rom
  15. 17 线性方程组——线性方程组解的结构、解的性质、解空间、基础解系、基础解系存在性
  16. Java代码实现奇数和偶数的判断
  17. 计算机维修培训教材,计算机芯片级维修中心芯片级维修培训教材.pdf
  18. 计算机相关学科查找英文paper的一般方法
  19. 面向对象与面向过程编程的区别
  20. 简单分析教您如何提高淘宝店铺DSR评分?

热门文章

  1. oracle11 如何启动企业管理器
  2. 【Django】admin.ModelAdmin的源码-20220105
  3. 测评丨阿昆说——惊喜发现一款免费的PCB设计分析软件
  4. Win10重装后无法激活问题解决办法
  5. Python实践:使用Turtle模块绘制炫彩螺旋线
  6. Zotero+onedrive同步问题
  7. 问题解决:opencv imwrite图片保存为黑色
  8. Bandwagon的配置记录(二) —— ftp文件传输
  9. 押宝无线充电 苹果首款 “无线充电宝”曝光
  10. C Primer Plus(第五版)2