微软2016校园招聘在线笔试第二场 题目1 : Lucky Substrings
2024-10-20 20:54:31
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
A string s is LUCKY if and only if the number of different characters in s is a fibonacci number. Given a string consisting of only lower case letters, output all its lucky non-empty substrings in lexicographical order. Same substrings should be printed once.
输入
A string consisting no more than 100 lower case letters.
输出
Output the lucky substrings in lexicographical order, one per line. Same substrings should be printed once.
样例输入
aabcd
样例输出
a
aa
aab
aabc
ab
abc
b
bc
bcd
c
cd
d
import java.util.HashSet;
import java.util.Scanner;
import java.util.TreeSet; public class Main {
public static HashSet<Integer> fibsetHashSet;
static{
fibsetHashSet= new HashSet<Integer>();
fibsetHashSet.add(0);
fibsetHashSet.add(1);
fibsetHashSet.add(2);
fibsetHashSet.add(3);
fibsetHashSet.add(5);
fibsetHashSet.add(8);
fibsetHashSet.add(13);
fibsetHashSet.add(21);
fibsetHashSet.add(34);
fibsetHashSet.add(55);
fibsetHashSet.add(89);
}
public static boolean isFib(String sub){ int count[]=new int[26]; //全是零 if(sub.length()==0)return false; for(int i=0; i<sub.length(); i++){
char a=sub.charAt(i);
count[a-'a']+=1;
}
int diff=0;
for( int i=0; i<26; ++i){
if(count[i]!=0)++diff;
} for( int i=0; i<26; ++i){
if(!fibsetHashSet.contains(diff))return false; //如果不符合
}
return true;
}
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
String string=scanner.next();
//String string="aabcd";
TreeSet<String> set = new TreeSet<String>(); int len=string.length();
for(int i=0; i<len; i++){
for(int j=i+1; j<=len; j++){
String subString=string.substring(i, j);
if(isFib(subString)){
set.add(subString);
}
}
}
for(String key: set){
System.out.println(key);
}
//System.out.println(set);
}
}
最新文章
- GitLab CI持续集成配置方案(补)
- Spring AOP详解
- Standard Error of Mean(s.e.m.)
- Python基础-列表_元组_字典_集合
- django admin中保存添加的数据提示need string or buffer, int found
- 微软CRM解决医药企业串货之痛
- Java Notes
- plupload+struts2实现文件上传下载
- beaglebone-black 在Angstrom系统中的网络配置方法
- Java和C++的不同
- 开源RPC(gRPC/Thrift)框架性能评测
- CDNI - RFC 6707 翻译
- JS常见的小代码
- ABPIAbpSession
- oracle在exp导出时报错PLS-00201: identifier &#39;EXFSYS.DBMS_EXPFIL_DEPASEXP&#39; must be declared
- 【转】头部属性 Meta http-equiv 大全
- Lua程序设计(三)面向对象实现一个简单的类
- C#编程(七十二)----------DynamicObject和ExpandoObject
- Android(java)同步方法synchronized
- 使 Inno Setup 打包出的安装程序以管理员身份运行
热门文章
- 前端中 width 的获取
- Intent创建Activity
- Vue + Webpack + Vue-loader 系列教程
- MongoDB 聚合Group(一)
- Eclipse常用小知识汇总
- Thread.Join(int millisecondsTimeout)
- [Erlang危机](4.1)作业控制模式
- MySql中LongText字段对应Hibernate映射文件的设置(转)
- github 丢失的本地提交
- hive数据类型转换、字符串函数、条件判断