题目:

小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。)
例如: s = "ABAB",那么小易有六种排列的结果:
"AABB","ABAB","ABBA","BAAB","BABA","BBAA"
其中只有"AABB"和"BBAA"满足最多只有一对不同颜色的相邻砖块。 

输入描述:

输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s中的每一个字符都为一个大写字母(A到Z)。

输出描述:

输出一个整数,表示小易可以有多少种方式。

输入例子1:

ABAB

输出例子1:

2

思路:

刚开始想解题思路的时候一直往排列组合的方向思考,觉得有点复杂就列举了几个例子,你猜咋滴!那可谓醍醐灌顶茅塞顿开春分迎面神龙摆尾啊,且听我道来:

其实这题一共就三种结果:

字符种类  最漂亮的排列方法数
1(如AAAA) 1
2 2
>=3 0

那这就简单了,我们只需知道字符种类数就可得出结果。

统计字符种类数时用Set,跟List一样,但要求不允许空值,不允许重复。上代码:

public class SameCol {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);String s=scanner.next();char[] st =s.toCharArray();Set set=new HashSet<>();for(int i=0;i<st.length;i++) {set.add(st[i]);}int len=set.size();if(len==1)System.out.println("1");else if(len==2)System.out.println("2");elseSystem.out.println("0");}}

其实我习惯这么写:

public class SameCol {public int Samecol(String s) {char[] st =s.toCharArray();Set set=new HashSet<>();for(int i=0;i<st.length;i++) {set.add(st[i]);}int len=set.size();if(len==1)return 1;else if(len==2)return 2;elsereturn 0;}public static void main(String[] args) {SameCol samecol=new SameCol();Scanner scanner=new Scanner(System.in);String s1=scanner.next();System.out.println(samecol.Samecol(s1));}}

2018网易秋招编程题【彩色砖块】相关推荐

  1. 2018深信服java笔试题,深信服2018秋招编程题

    深信服2018秋招编程题 深信服2018秋招编程题 第一题: 其中,reverse函数的代码实现如下: 1. unsigned int reverse(unsigned int num) { unsi ...

  2. 京东2018秋招编程题

    C++开发工程师 京东 2018秋招编程题 (代码后续更新...) 1.神奇数 将一个数n的各数位分成两部分,两部分之和相等,则称这个数为神奇数.比如242分成[2,2].[4].输入一个范围[l, ...

  3. 滴滴2018秋招编程题

    滴滴 2018秋招 编程题 1.寻找丑数 丑数的定义是,只包含因子2.3和5的数称作丑数.比如6和8是丑数,14不是丑数,因为含有因子7.输入一个整数n,输出第n个丑数.我们认为第一个丑数是1. 解析 ...

  4. 今日头条2018秋招编程题

    今日头条 2018秋招 Android方向 编程题 1.手串 作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串–每个串珠要么无色,要么涂了若干种颜色.为了使手串的色彩看起来不那么单调,金主 ...

  5. 网易2017秋招编程题集合

    [编程题]回文序列 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,  {1, 2, ...

  6. 2017网易秋招编程集合

    CPP http://blog.csdn.net/achiberx/article/details/74058208 [编程题]回文序列 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回 ...

  7. 哔哩哔哩 2019秋招编程题合集

    1/14 [编程题]扭蛋机 #include<bits/stdc++.h> using namespace std; #define line cout << "-- ...

  8. 2018深信服java笔试题_深信服2018秋招编程题

    第一题: 其中,reverse函数的代码实现如下: 1. unsigned int reverse(unsigned int num) { unsigned int ans = 0; for (int ...

  9. 携程2018 秋招编程题 - java

    第一题: 两个排好序的数组 求中位数 import java.util.Comparator; import java.util.PriorityQueue; import java.util.Sca ...

最新文章

  1. 化学博士6次投毒同事,只因对方给自己安排工作太多....
  2. Java程序员从笨鸟到菜鸟之(一百零七)一步一步学习webservice(一)开篇
  3. FastTunnel-开源内网穿透框架
  4. 网友半夜差点被沐浴露吓死,众人:原来不止我胆小....
  5. HDU 6706 huntian oy (欧拉函数 + 杜教筛)
  6. 2020年“双11”各家晒出成绩单,你还没付完尾款,有的人已经收货了!
  7. bootstrap你让前端小狮子们又喜又恨
  8. linux系统设置软连接
  9. python输出语句怎么换行_python输出语句换行
  10. 带你进入 jBPM 工作流的世界
  11. 初级Java程序员如何快速提升自己的能力?
  12. Tp-link路由器设置教程
  13. 如何让ffplay或者ffmpeg支持H265编码的rtmp/http-flv 实时直播流
  14. SnnGrow快讯:Apple Books上线AI读书功能、有声书市场将迎来颠覆时刻、刚过7岁生日的OpenAI估值达到290亿美元、跻身全球独角兽排行榜前20、中国航天2023全年发射将再破60次
  15. 史上最全图详解Jvm—诊断工具和JVM监控
  16. 让我们恭喜阿根廷队夺得大力神杯
  17. Oracle的表空间和sqlplus
  18. Win11 PS2022 打开文件闪退
  19. 学计算机用啥u盘好,U盘制作工具哪个好用?2020U盘制作工具推荐
  20. https://blog.csdn.net/codezjx/article/details/8872090

热门文章

  1. vs code远程编辑文件
  2. 台湾李宏毅教授深度学习
  3. Android开源项目合集
  4. 车载以太网物理层PMA测试和IOP测试属于Layer 1(物理层)
  5. 框架相关核心要点详解
  6. mysql导出数据到文件
  7. modbus tcp通讯modbus4j使用说明
  8. 10个适合于高级Java开发人员的外国网站
  9. MySQL事务及实现原理
  10. 于宙:我们这一代人的困惑