Lucky String
来源:互联网 发布:java计算运费代码 编辑:程序博客网 时间:2024/06/08 11:47
题目
题目描述
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
答案
#include <iostream>#include <string>#include <vector>#include <set>#include <algorithm>using namespace std;vector<int> fibonacci({ 1, 2, 3, 5, 8, 13, 21 });//计算一个字符串出现的不同字符的个数//使用了STL中的count函数bool isLucky(string &s){ int word[26] = { 0 }; int countNum = 0; for (int i = 0; i<s.size(); i++){ if (word[s[i] - 'a'] == 0){ countNum++; word[s[i] - 'a'] = 1; } } return count(fibonacci.begin(), fibonacci.end(), countNum);}int main(){ set<string> resultStr; set<string>::iterator iter; string str; cin >> str; for (int i = 0; i < str.length(); i++){ for (int j = i+1; j<=str.length(); j++){ //string subStr(str, i, j-i); 也可以这样实现 string subStr(&str[i], &str[j]); if (isLucky(subStr)) resultStr.insert(subStr); } } for (iter = resultStr.begin(); iter != resultStr.end(); iter++) cout << *iter << endl; getchar(); getchar(); return 0;}
总结
在这道题里面需要注意的点:
1. 计算一个字符串中出现的不同字符的个数
2. STL中count()函数的用法
3. String 函数的不同构造函数的区别
4. 为什么getchar()在这里用了两次
0 0
- lucky string
- LUCKY STRING
- Lucky String
- Lucky String
- LUCKY STRING
- Lucky String
- LUCKY STRING
- LUCKY STRING
- Lucky String
- B. Lucky String
- 微软 LUCKY STRING
- 【微软】LUCKY STRING
- 算法笔试题:LUCKY STRING
- Codeforces 110B-Lucky String(技巧)
- 【string】#84 A. Nearly Lucky Number
- lucky
- Lucky draw
- Lucky Word
- CSDN一直都很不错,加油了4
- Android获取data文件夹权限
- NOIP 2009 解题报告(潜伏者,hankson的趣味题,最有贸易,靶形数独)
- ln: failed to create symbolic link 'libavutil.so': Operation not supported
- 不使用PHP内置排序函数对二维数组实现快速排序的面试题
- Lucky String
- 多米诺骨牌-SSL 1632
- 高通平台Power key 唤醒慢抓取log
- typedef int* PINT与#define PINT int*的区别
- Docker 安装tomcat
- [Unity]Unity性能优化实战之GC优化(序)
- 线程间协作的两种方式:wait、notify、notifyAll和Condition
- 浅谈jQurey懒加载技术
- js根据日期得到日期