荷兰国旗问题

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
荷兰国旗有三横条块构成,自上到下的三条块颜色依次为红、白、蓝。现有若干由红、白、蓝三种颜色的条块序列,要将它们重新排列使所有相同颜色的条块在一起。本问题要求将所有红色的条块放最左边、所有白色的条块放中间、所有蓝色的条块放最右边。
输入
第1行是一个正整数n(n<100),表示有n组测试数据。接下来有n行,每行有若干个由R,W,B三种字符构成的字符串序列,其中R,W和B分别表示红、白、蓝三种颜色的条块,每行最多有1000个字符。
输出
对输入中每行上由R,W,B三种字符构成的字符串序列,将它们重新排列使所有相同颜色的条块在一起,满足前述要求。
样例输入
3
BBRRWBWRRR
RRRWWRWRB
RBRW
样例输出
RRRRRWWBBB
RRRRRWWWB
RRWB 

水题,代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{int n,i,len,k;char str[1100],c;scanf("%d",&n);while(n--){scanf("%s",str);len=strlen(str);k=0;for(i=0;i<len;i++){if(str[i]=='R'){c=str[i];str[i]=str[k];str[k]=c;k++;}}for(i=k;i<len;i++)//注意可能有没有R的情况,所以i不能直接等于(k+1) {if(str[i]=='W'){c=str[i];str[i]=str[k];str[k]=c;k++;}}printf("%s\n",str);}return 0;
} 

NYOJ 268 荷兰国旗问题相关推荐

  1. NYOJ268 荷兰国旗问题

    荷兰国旗问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 荷兰国旗有三横条块构成,自上到下的三条块颜色依次为红.白.蓝.现有若干由红.白.蓝三种颜色的条块序列,要将它 ...

  2. NYOJ【268】荷兰国旗问题【字符串】

    荷兰国旗问题 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 1 描述 荷兰国旗有三横条块构成,自上到下的三条块颜色依次为红.白.蓝.现有若干由红.白.蓝三种颜色的条块序列, ...

  3. python单链表实现荷兰国旗问题_这道荷兰旗问题,我面试时遇到三次!

    01.题目示例 "荷兰国旗问题" 是计算机科学中的一个经典题目,它是由Edsger Dijkstra提出的.荷兰国旗由红.白.蓝三色组成. 荷兰国旗问题:现在有若干个红.白.蓝三种 ...

  4. 荷兰国旗 Flag of the Kingdom of the Netherlands

    问题描述:现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右的球依次为红球.白球.蓝球.这个问题之所以叫做荷兰国旗,是因为将红白蓝三色的小球弄成条状物,并有序排列 ...

  5. Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)

    Algorithm:C+语言实现之数组相关算法(和为定值的两个数.和为定值的m个数.荷兰国旗.长度为2n的洗牌算法.任意长度数组的洗牌算法) 目录 数组 1.寻找和为定值的两个数 2.和为定值的m个数 ...

  6. 算法练习day4——190321(小和、逆序对、划分、荷兰国旗问题)

    归并排序快的原因: 后面的排序利用了前面排序的结果!!! 1.小和问题 在一个数组中, 每一个数左边比当前数小的数累加起来, 叫做这个数组的小和. 求一个数组的小和. 例子:[1,3,4,2,5] 1 ...

  7. leetcode 75. Sort Colors | 75. 颜色分类(荷兰国旗问题,快速排序)

    题目 https://leetcode.com/problems/sort-colors/ 题解 快速排序3.0(随机快排+荷兰国旗技巧优化) 在arr[L-R]范围上,进行快速排序的过程: 1)在这 ...

  8. 【算法习作】荷兰国旗问题

    1.问题描述:     我们将乱序的红白蓝三色小球排列成有序的红白蓝三色的同颜色在一起的小球组.这个问题之所以叫荷兰国旗,是因为我们可以将红白蓝三色小球想象成条状物,有序排列后正好组成荷兰国旗. 2. ...

  9. 荷兰国旗问题(分三块)

    在说 "荷兰国旗" 问题之前,首先来看一个引例. 给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边.要求额外空间复杂度O(1) ...

最新文章

  1. java 解析cron_springtask 的使用方法和 cron 表达式解析
  2. 【IT基础】常见的开发文档
  3. 生成树协议基础—Vecloud微云
  4. .NET MongoDB Driver 2.2使用示例
  5. Appium+Python+Pycharm如何创建并运行自动化测试脚本【真机运行】
  6. 如何使用APTonCD备份和还原已安装的Ubuntu软件包
  7. 最右显示请求服务器不存在,修改合流任务_实时音视频 RTC_服务端API参考_合流任务管理_华为云...
  8. 【渝粤题库】广东开放大学 建筑工程概预算 形成性考核
  9. linuxamp;amp;shell学习(积累中。。。)
  10. Android VelocityTracker简介
  11. 商业智能的研究,主要集中在哪三个方面?
  12. 程序人生——苏嵌第六天
  13. 『每周译Go』并发安全的集中式指针管理设施
  14. matlab一阶导数图,一阶微分excel【如何用EXCEL做一阶导数图?】
  15. Preface Numbering序言页码
  16. 游戏编程模式 - 观察者模式
  17. python+selenium自动化脚本例子
  18. base64加密和解密(动态密钥)
  19. 金蝶K3提取在途订单数据并设置触发(可用于在途订单交期回复)
  20. 手机中PDF格式转换PPT操作方法

热门文章

  1. ORA-01034和ORA-27101的解决方法,plsql登录提示标识符无效
  2. 华为OD机试题 - 预订酒店(JavaScript)| 包含代码编写思路
  3. 通信原理包络是什么意思_适用于包络跟踪应用的高带宽AB类放大器设计
  4. Android面试基础之ContentProvider详解(斗帝养成系列三)
  5. react native报错:undefined Unable to resolve module 'Dimensions' from 'App.js
  6. 【WEB开发】前端UI开源框架
  7. 一些常见的移动端适配方案,你了解吗?
  8. 2020电工(高级)模拟考试及电工(高级)实操考试视频
  9. PostGIS空间索引
  10. Android如何保持屏幕常亮