题目:

有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分你可以带走。如果无法找到则一个也无法带走。请帮助学者找出如何切分项链才能够拿到最多的宝石。

输入描述:

我们用每种字符代表一种宝石,A表示红宝石,B表示蓝宝石,C代表紫水晶,D代表翡翠,E代表钻石,F代表玉石,G代表玻璃等等,我们用一个全部为大写字母的字符序列表示项链的宝石序列,注意项链是首尾相接的。每行代表一种情况。

输出描述:

输出学者能够拿到的最多的宝石数量。每行一个
示例1

输入

ABCYDYE
ATTMBQECPD

输出

1
3

分析:

复制字符串(在合法输入情况下,其实只需要在原始字符串后面添加原始字符串前5位就可以了)。ABCDE分别用二进制的每一位表示,如A代表1,B代表2,C代表4,D代表8,E代表16。我们定义一个标记flag=0x0000(0x代表十六进制),遍历字符串,每取到一个A~E之间的字符,就执行flag=flag|(1<<(str[i]-‘A’);这句话的意思是将每一次取到A~E之间的值与flag进行或运算,比如flag起始为0,取到字符B时,flag为0x2,再取到C时,flag=0x6,再取到之前取过的值时,flag是不变的,当flag=0x1f(也就是flag==31时),表示ABCDE都已经取到。所以可以根据flag与0x1f作比较来判断A~E是否全部取到。

代码:

#include<iostream>
#include<string>
using namespace std;
int main(){string a;int len,flag=0,count,min;while(getline(cin,a)){len=a.length();min=len;for(int i=0;i<len;i++)a.push_back(a[i]);for(int i=0;i<len+5;i++){int j=i;flag=0;count=0;while((j<len+len)&&flag!=0x1F){if(flag==0)count=0;if(a[j]>='A'&&a[j]<='E'){flag|=1<<(a[j]-'A');}j++;count++;}if((min>count)&&(flag==0x1F))min=count;}cout<<len-min<<endl;}
}

彩色宝石项链C/C++解决相关推荐

  1. **《彩色宝石项链》

    题目描述 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶, ...

  2. 牛客网在线编程(7):彩色宝石项链-python

    题目描述 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶, ...

  3. 搜狐[编程题]彩色宝石项链.有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等

    时间限制:1秒 空间限制:32768K 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后 ...

  4. c++编程题 彩色宝石项链

    题目描述 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶, ...

  5. 牛客编程题:彩色宝石项链

    彩色宝石项链 题目描述: 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石, ...

  6. 牛客算法笔记 彩色宝石项链

    链接:https://www.nowcoder.com/questionTerminal/321bf2986bde4d799735dc9b493e0065 来源:牛客网有一条彩色宝石项链,是由很多种不 ...

  7. 搜狐笔试题目一彩色宝石项链

    有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石 ...

  8. 彩色宝石项链(环状链表处理)

    题目描述 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶, ...

  9. 彩色宝石项链-搜狐编程

    题目要求: 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等.有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶 ...

最新文章

  1. 文轩在线:如何让IT部门成为企业的价值中心
  2. Map Join介绍及案例
  3. java asm 中文文档_Java ASM3学习(3)
  4. 通过取父级for循环的i来理解闭包,iife,匿名函数
  5. 全网最全Spring面试题之高级篇整理总结(二)(共16题,附超详细解答)
  6. 3.1.1 Spring 简介
  7. 项目怎么导入mui_Vue项目MUI的使用
  8. python自学看什么书-如何自学Python ?自学看什么书比较好?
  9. 家庭版完全免费,下面的注册码为:avast! 4 pro(专业版)的
  10. 基于Astar算法实现飞行轨迹的三维规划附Matlab代码
  11. 人生如逆旅,我亦是行人。
  12. 常见开关电源优缺点对比
  13. Mac下压缩和解压rar文件的方法
  14. Python实现输出电话号码对应的字母组合
  15. linux 中文件批量重命名
  16. 机器学习(Machine-Learning)----概述
  17. 微信与支付宝扫码支付
  18. STM32汇编指令(一)WFI 和 WFE
  19. 你并不理解的 电快速瞬变脉冲群 实验
  20. 基于ESP32四旋翼无人机如何根据PID算法进行电机的PWM duty补偿

热门文章

  1. Micron内存DDR3型号查询 memory part
  2. n维椭球体积公式_【三分钟知识点】初中物理公式大全,赶快收藏!
  3. HDU-1849-Rabbit and Grass
  4. 【软件工程】 软件设计阶段
  5. HBuilder 打包 iOS 客户端会产生广告标识符的问题
  6. Idea中maven 只从本地仓库导入jar包,取消联网下载的问题
  7. 基于网络特征的新型授权机制设想
  8. svn安装完成check后无法commit错误信息,及相应的解决办法
  9. win10无线投屏_如何将安卓手机实时投屏到个人电脑
  10. Qt大屏电子看板系统源码