2017年校招全国统一模拟笔试(第一场)编程题集合——循环单词
来源:互联网 发布:淘宝推广拉人进群 编辑:程序博客网 时间:2024/04/27 21:53
题目要求:
链:https://www.nowcoder.com/questionTerminal/9d5fbe7750a34d0b91c73943f93b2d7d 来源:牛客网
如果一个单词通过循环右移获得的单词,我们称这些单词都为一种循环单词。 例如:picture 和 turepic 就是属于同一种循环单词。 现在给出n个单词,需要统计这个n个单词中有多少种循环单词。
输入描述:
输入包括n+1行:
第一行为单词个数n(1 ≤ n ≤ 50)
接下来的n行,每行一个单词word[i],长度length(1 ≤ length ≤ 50)。由小写字母构成
输出描述:
输出循环单词的种数
输入例子:
5
picture
turepic
icturep
word
ordw
输出例子:
2
贴上代码(此代码并非本人所写):
import java.util.ArrayList;import java.util.Scanner;/* * 如果一个单词通过循环右移获得的单词,我们称这些单词都为一种循环单词。 * 例如:picture 和 turepic 就是属于同一种循环单词。 * 现在给出n个单词,需要统计这个n个单词中有多少种循环单词。 **/public class RoundWord { public static void main(String[] args) { /** * 该解法思想就是,把每个单词所有可能的循环单词都放在一个数据结构中, 可以是List,map,set,数组等等, * 此处用ArrayList. * 然后判断下一个单词是否在表中,不在则加入,并把循环种类加1 在的话,则它与之前的单词是同一种循环单词 */ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 第一行为单词个数n(1 ≤ n ≤ 50) ArrayList<String> list = new ArrayList<>(); int count = 0; for (int i = 0; i < n; i++) { String s = sc.next(); // 输入并存储每行的单词。此处必须调用next()方法,不能是nextLine()方法 if (!list.contains(s)) { count++; list.add(s); for (int j = 0; j < s.length() - 1; j++) {//把每个单词所有可能的循环单词加入到list中 char last = s.charAt(s.length() - 1); s = s.substring(0, s.length() - 1); s = last + s; list.add(s); // 以下注释是另一种方法,把可能的循环单词加入list, // 思路:把要测试的单词后再重复下这个单词,如:picture ,变成 picturepicture // 感谢得闲半生的idea // StringBuffer string = new StringBuffer(); // string.append(s); // string.append(s); // String another = string.substring(j, s.length() + j); // list.add(another); } } } sc.close(); System.out.println(count); }}
PS:按照题目意思,应该每一个单词都是循环单词,并非要出现一对配对的循环单词,即输入:
3
abc picture citurep
输出:
2
0 0
- 2017年校招全国统一模拟笔试(第一场)编程题集合——循环单词
- 2017年校招全国统一模拟笔试(第一场)编程题集合——连续整数
- 2017年校招全国统一模拟笔试(第一场)编程题集合——好多鱼
- 2017年校招全国统一模拟笔试(第一场)编程题集合——DNA配对
- 2017年校招全国统一模拟笔试(第一场)编程题集合——超级素数幂
- 2017年校招全国统一模拟笔试(第一场)编程题集合——序列和
- 牛客网2017年校招全国统一模拟笔试(第一场)编程题集合
- 2017年校招全国统一模拟笔试(第一场)编程题集合--Python
- 牛客网2017年校招全国统一模拟笔试(第一场)编程题 -- 好多鱼!
- 2017年校招全国统一模拟笔试(第三场)编程题集合
- 2017年校招全国统一模拟笔试(第二场)编程题集合--Python
- 2017年校招全国统一模拟笔试(第三场)编程题集合--Python
- 2017年校招全国统一模拟笔试(第四场)编程题集合--Python
- 2017年校招全国统一模拟笔试(第三场)编程题集合(Javascript版)
- 2017年校招全国统一模拟笔试(第五场)编程题集合(Javascript版)
- 017年校招全国统一模拟笔试(第四场)编程题集合
- 017年校招全国统一模拟笔试(第三场)编程题集合
- 2017校招全国统一模拟笔试第一场-编程题(8题)-牛客网(java)
- Redis整合及使用参考文档
- 堆排序
- 火狐下的两款接口测试工具RESTClient和HttpRequester
- 5-23 币值转换*
- JavaScript学习-函数
- 2017年校招全国统一模拟笔试(第一场)编程题集合——循环单词
- SPI总线(一)
- Oracle数据库学习--基础查询及关联查询
- Spring如何运用Java反射机制实现IOC
- 数据结构—树
- 深度学习论文阅读路线图
- 使用Nexus搭建Maven私服
- 【Linux】ubuntu14.04下用AndroidStudio调试,插入设备后显示insufficient permissions for device,或者??????一串问号
- mysql ERROR 1045 (28000): 错误解决办法(忘记密码了)