循环单词 java
链接: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
方案一:(缺点时间复杂度高)
遍历输入的字符串,将未出现过(以及其循环右移的衍生字符串都未出现)的字符串添加到set中。
import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;
//字符串循环右移的属于一类,问有多少类
public class Main{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
Set<String> set = new HashSet<String>();
int num=sc.nextInt();
sc.nextLine();
for(int i=0;i<num;i++){
String a=sc.nextLine();
if(set.contains(a)) continue;
String b=change(a);
while(!b.equals(a)){
if(set.contains(b)) continue;
b=change(b);
}
if(b.equals(a)){
set.add(a);
}
}
Object count[]=set.toArray();
System.out.println(count.length);
} public static String change (String a){
String b=a.substring(a.length()-1)+a.substring(0,a.length()-1);
return b;
}
}
方案二:(改进)
遍历输入的字符串,如果从未出现则将其以及其所有的右移衍生字符串均添加到set中,并且计数加1.
import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;
public class Main{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
Set<String> set = new HashSet<String>();
int num=sc.nextInt();
sc.nextLine();
int count=0;
for(int i=0;i<num;i++){
String a=sc.nextLine();
if(!set.contains(a)){
count++;
set.add(a);
String b=change(a);
while(!b.equals(a)){
set.add(b);
b=change(b);
}
}
}
System.out.println(count);
} public static String change (String a){
String b=a.substring(a.length()-1)+a.substring(0,a.length()-1);
return b;
}
}
循环单词 java的更多相关文章
- lintcode671 循环单词
循环单词 The words are same rotate words if rotate the word to the right by loop, and get another. Cou ...
- 循环遍历Java字符串字符的规范方法——类似python for ch in string
比如我将string作为CNN 文本处理输入: float [] input = new float[maxLength]; // 1 sentence by maxLenWords // int[] ...
- 循环报数 Java实现
输入1个数字和多个字符,中间均以空格隔开.假设数字取值为m(范围1~9),后面字符个数为n.假设n个字符围成一圈,从第一个字母开始循环报数,当数到m以后,第m个字母就出列,直到这n个字母全部出列.最后 ...
- js的for in循环和java里的foreach循环的差别
js里的for in循环定义例如以下: for(var variable in obj) { ... } obj能够是一个普通的js对象或者一个数组.假设obj是js对象,那么variable在遍历中 ...
- Vue.js——循环(Java、JSTL标签库、数据库)
一.Vue.js循环 Vue.js循环要使用 v-for 指令. v-for 指令需要以 student in StudentList 形式的特殊语法使用, StudentList 是源数据数组并且s ...
- 统计单词Java
功能0:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位. 功能1:输出文件中所有不重复的单词,按照出现次数由多到少排列,出现次数同样多的,以字 ...
- 洛谷P1050 循环【java大数】
题目:https://www.luogu.org/problemnew/show/P1050 题意:给定一个数$n$,问$n$的幂次的最低$k$位的循环节是多少. 思路:这真是我做过最难的java大数 ...
- Web循环监控Java调用 / Java调用.net wcf接口
背景介紹 (Background Introduction) 目前有一些报表客户抱怨打不开 报表执行过程过长,5.8.10秒甚至更多 不能及时发现和掌握服务器web站点情况 用戶需求(User Req ...
- 【spring】循环依赖 Java Vs Spring
菜瓜:水稻,这次我特意去看了java的循环依赖 水稻:哟,有什么收获 菜瓜:两种情况,构造器循环依赖,属性循环依赖 构造器循环依赖在逻辑层面无法通过.对象通过构造函数创建时如果需要创建另一个对象,就会 ...
随机推荐
- 使用 GitHub, Jekyll 打造自己的免费独立博客
使用 GitHub, Jekyll 打造自己的免费独立博客 GitHub是一个代码托管网站,现在很多开源项目都放在GitHub上. 利用GitHub,可以让全球各地的程序员们一起协作开发.GitHub ...
- (转)java生成UUID通用唯一识别码 (Universally Unique Identifier)
(原文链接:http://blog.csdn.net/carefree31441/article/details/3998553) UUID含义是通用唯一识别码 (Universally Uniq ...
- 使用php实现网站验证码功能【博主推荐】
验证码是网站常用的一项安全措施,也是新人站长较难掌握的一项技能,这里我向大家介绍一简单有效的验证码实现方法. 开始之前 在正式开始之前我们需要打开php的gd2图形库支持(在php. ...
- java_JDBC(4)
一.Statement import java.sql.*; public class TestJDBC { public static void main(String[] args) { Conn ...
- db2_errroecode
sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +09 ...
- Jmeter生成html格式测试报告
使用jmeter进行性能测试,运行完毕后生成html格式的测试报告,需要进行如下操作: 1.在C:\apache-jmeter-3.0\bin文件夹下的user.properties文本中添加如下信息 ...
- NSDictionary 总结 -iOS
总结:字典分NSDictionary(不可变,只能查询)和NSMutableDictionary(可变.能增删改查)两种,形式是key-value,key是不可重复的,value可以重复 1.初始化字 ...
- WKWebView的使用与JS交互详细解读
前言: WKWebView 这是在iOS8.0之后增加的一个比UIWebView更加完善和强大的控件!看网上关于它的博客也是有许多的了,从各个方面总结一下这个WKWebView看网上说它主要是为了和J ...
- 微信公众号开发总结(Node.js + express + winston)
关于订阅号.服务号.企业号 官方定位 订阅号:主要偏于为用户传达资讯(类似报纸杂志),认证后每天可以群发一条消息,可达到宣传效果,构建与读者之间更好的沟通和管理模式. 服务号:主要偏于服务交互(类似银 ...
- use vue vuex vue-router, not use webpack
vue,vuex,vue-router放在一起能做什么?不用webpack之类的打包工具使用他们是否可行?各位道友在初学vue时是否有这样的困惑.因为现代构建前端项目的一般模式是: 安装webapck ...