HDOJ17098 Fibonacci String
来源:互联网 发布:金融行业前景知乎 编辑:程序博客网 时间:2024/06/13 15:17
Fibonacci String
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6631 Accepted Submission(s): 2285
Problem Description
After little Jim learned Fibonacci Number in the class , he was very interest in it.
Now he is thinking about a new thing -- Fibonacci String .
He defines : str[n] = str[n-1] + str[n-2] ( n > 1 )
He is so crazying that if someone gives him two strings str[0] and str[1], he will calculate the str[2],str[3],str[4] , str[5]....
For example :
If str[0] = "ab"; str[1] = "bc";
he will get the result , str[2]="abbc", str[3]="bcabbc" , str[4]="abbcbcabbc" …………;
As the string is too long ,Jim can't write down all the strings in paper. So he just want to know how many times each letter appears in Kth Fibonacci String . Can you help him ?
Now he is thinking about a new thing -- Fibonacci String .
He defines : str[n] = str[n-1] + str[n-2] ( n > 1 )
He is so crazying that if someone gives him two strings str[0] and str[1], he will calculate the str[2],str[3],str[4] , str[5]....
For example :
If str[0] = "ab"; str[1] = "bc";
he will get the result , str[2]="abbc", str[3]="bcabbc" , str[4]="abbcbcabbc" …………;
As the string is too long ,Jim can't write down all the strings in paper. So he just want to know how many times each letter appears in Kth Fibonacci String . Can you help him ?
Input
The first line contains a integer N which indicates the number of test cases.
Then N cases follow.
In each case,there are two strings str[0], str[1] and a integer K (0 <= K < 50) which are separated by a blank.
The string in the input will only contains less than 30 low-case letters.
Then N cases follow.
In each case,there are two strings str[0], str[1] and a integer K (0 <= K < 50) which are separated by a blank.
The string in the input will only contains less than 30 low-case letters.
Output
For each case,you should count how many times each letter appears in the Kth Fibonacci String and print out them in the format "X:N".
If you still have some questions, look the sample output carefully.
Please output a blank line after each test case.
To make the problem easier, you can assume the result will in the range of int.
If you still have some questions, look the sample output carefully.
Please output a blank line after each test case.
To make the problem easier, you can assume the result will in the range of int.
Sample Input
1ab bc 3
Sample Output
a:1b:3c:2d:0e:0f:0g:0h:0i:0j:0k:0l:0m:0n:0o:0p:0q:0r:0s:0t:0u:0v:0w:0x:0y:0z:0
简单题,后一个等于前两个之和,但这里是string,可以进行一下转化,
使用int数组来存储字母的个数,当然k=1,2的时候需要另外判断。
下面AC代码:
import java.util.Arrays;import java.util.Scanner;public class Main{private static Scanner scanner;public static void main(String[] args) {scanner = new Scanner(System.in);int cases = scanner.nextInt();while (cases-- > 0) {String str1 = scanner.next();String str2 = scanner.next();int k = scanner.nextInt();// (0 <= K < 50int a[] = count(str1);int b[] = count(str2);int c[] = new int[26];for (int i = 2; i <= k; i++) {c = add(a,b);a = Arrays.copyOf(b, 26);b = Arrays.copyOf(c, 26);}if(k==0){c=a;}if(k==1){c=b;}for (int i = 0; i < c.length; i++) {System.out.println((char)(i+97)+":"+c[i]);}System.out.println();}}private static int[] add(int[] a, int[] b) {for (int i = 0; i < b.length; i++) {a[i] = a[i]+b[i];}return a;}public static int[] count(String str){int arr[] = new int[26];for (int i = 0; i < str.length(); i++) {char ch = str.charAt(i);int t = ch-97;arr[t]++;}return arr;}}
阅读全文
0 0
- HDOJ17098 Fibonacci String
- hdu 1708 Fibonacci String
- hdu1708(Fibonacci String)
- HDU 1708 Fibonacci String
- 【HDOJ】1708 -> Fibonacci String
- HDU 1708 Fibonacci String
- Fibonacci String 1708
- hdu 1708 Fibonacci String
- hdu 1708 Fibonacci String
- HDU1708 Fibonacci String【水题】
- HDU 1708 Fibonacci String
- hdoj-1708-Fibonacci String
- HDU 1780 Fibonacci String
- HDU1708 Fibonacci String
- hdu 1708 Fibonacci String
- HDOJ 1708 Fibonacci String
- HDU1708 Fibonacci String 动态规划
- hdoj.1708 Fibonacci String 20141018
- 人工智能火爆了!阿里机器人都会批改作文了!苹果开源机器学习框架;360 开源深度学习平台 XLearning;
- 用通俗易懂的话说下hadoop是什么,能做什么
- 超大文件问题
- python安装教程 Pycharm安装详细教程
- C++之统计二叉树中路径和为定值的所有路径(24)---《那些奇怪的算法》
- HDOJ17098 Fibonacci String
- C++学习---一道笔试题:测试当前电脑系统是大端存储还是小端存储数据
- 22篇
- Docker学习笔记——构建镜像
- Eclipse配置错误 —— Syntax error, annotations are only available if source level is 1.5 or greater
- Quartz框架
- Spring提取@Transactional事务注解的源码解析
- 时间的账单
- Linux 内核学习经验总结