字符串面试题(三)— 把一个字符串的大写字母放到字符串的后面

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/53675627

把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。 例如AbcDeFGhi ->bceiADFG


基于冒泡的思想,从头开始扫描,遇到小写字母就往前面冒:

初始:AbcDeFGhi

冒’b’: bAcDeFGhi 冒’c’: bcADeFGhi 冒’e’: bceADFGhi 冒’h’: bcehADFGi 冒’i’: bcehiADFG


得到最终结果为bceiADFG

最终代码如下:

#include <stdio.h>
#include <string.h>
int main() {
  char s[1000], t;
  int i, j;
  while (scanf("%s", s) != EOF) {
    for (i = 1; i < strlen(s); ++i) {
      j = i;
      if ('a' <= s[i] && s[i] <= 'z')
        while (j != 0 && 'A' <= s[j-1] && s[j-1] <= 'Z') {
          t = s[j-1];
          s[j-1] = s[j];
          s[j--] = t;
        }
    }
    printf("%s\n", s);
  }
  return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能合约

base62编码

1.1K40
来自专栏xingoo, 一个梦想做发明家的程序员

剑指OFFER之树的子结构(九度OJ1520)

题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构。 输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试案例,输入的第一行一个整数n,m(...

204100
来自专栏灯塔大数据

每周学点大数据 | No.28 表排序

No.28期 表排序 Mr. 王:前面我们讨论了一些基础磁盘算法,现在我们来讨论一些关于磁盘中图算法的问题。 通过对基础磁盘算法的学习,我们可以很容易地想到...

34370
来自专栏Fish

蓝桥杯 大臣的旅费

做过相同类型的题 题意就是求树的直径,即树中任意两点之间带权路径和的最大值。 思路就是用两次BFS,第一次搜到直径的一端,第二次就直接计算直径的长度。至于为啥是...

28360
来自专栏CDA数据分析师

实用小工具,教你轻松转化Python通用数据格式

已独立成项目在github上面 dataformat, 涉及模块 os, getopt, sys。 1 需求 在进行hadoop测试时,需要造大量数据,例如某个...

21150
来自专栏烙馅饼喽的技术分享

用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用原型链和EventTrigger

原型链是JS的必备,作为ECMAScript4,原型链也是支持的。 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的...

30760
来自专栏Petrichor的专栏

tensorflow编程: Wraps python functions

在 tensorflow 中 缺乏 需要的 函数接口 时,负责将任意的 python/numpy functions 包装成 TensorFlow op。

11420
来自专栏小樱的经验随笔

hihoCoder #1082 : 然而沼跃鱼早就看穿了一切(字符串处理)

#1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 ? fjxmlhx每天都在被沼跃鱼刷屏,因...

29650
来自专栏数值分析与有限元编程

fortran知识 | 代码错误(domain error)

如图所示,提示为:domain error ? 这表示数学函数错误,如超出数学函数的定义域,负数开平方,分母为0等等;也有可能是浮点数错误,比如sqrt(4),...

38160
来自专栏一“技”之长

一个移动开发者的Mock数据之路 原

    在前端开发中,很大一部分工作都是将后台数据获取到后展示在前端界面上。如果接口是现成的,这个过程还相对容易一些,但是如果接口的开发和前端开发是同时进行的,...

7910

扫码关注云+社区

领取腾讯云代金券