蓝桥杯 取字母组成串 * A B C D中取5次,每个字母都可以重复取出,形成一个串。 现在要求,串中A出现的次数必须为偶数(0次也算偶数)。 求可以形成多少种可能的串。
来源:互联网 发布:淘宝lite下载 编辑:程序博客网 时间:2024/05/16 07:01
这是一道DFS型的题,看起来不用DFS也是可以做的,但是需要讨论的情况就很多了
关于DFS,我也是在摸索当中,关于这道题,看到了高人的代码
/* 取字母组成串 * A B C D中取5次,每个字母都可以重复取出,形成一个串。 现在要求,串中A出现的次数必须为偶数(0次也算偶数)。 求可以形成多少种可能的串。 */ public class Main { <span style="color:#33cc00;"> // 取n次,A出现奇数次 </span> public static int g(int n) { if (n == 1) return 1; return 3 * g(n - 1) + f(n - 1); } <span style="color:#33cc00;">// 取n次,A出现偶次 </span> public static int f(int n) { if (n == 1) return 3; return 3 * f(n - 1) + g(n - 1); } public static void main(String[] args) { System.out.println(f(5)); } }
在这里首先要搞懂,DFS检测的条件是什么,在这道题中,要搞懂return中3*的含义
因为只有ABCD四个数,除去A,所以每种检测都有3种情况
f(5)进入检测,从5个数中取出A时偶数的情况
return 3*f(n51)+g(5-1);
。 。 。。 。
到最后return
3*f(n21)+g(2-1)
return3
其中f(1)是取1个数S是偶数的情况,明显A为0,抽取其他数字有三种可能,倒退回去,每次都是3倍的关系
1 0
- 蓝桥杯 取字母组成串 * A B C D中取5次,每个字母都可以重复取出,形成一个串。 现在要求,串中A出现的次数必须为偶数(0次也算偶数)。 求可以形成多少种可能的串。
- 取字母组成串 A B C D中取5次,每个字母都可以重复取出,形成一个串。
- 取字母组成串 A B C D中取5次,每个字母都可以重复取出,形成一个串
- 不同的取法输出顺序可以不考虑。取字符( 从标准输入读入一个由字母构成的串(不大于30个字符)。从该串中取出3个不重复的字符,求所有的取法。取出的字符,要求按字母升序排列成一个串。)
- a,b,c,d,e,f六个字母可以构成多少没有重复的字符串。
- 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为: a(2)b(1)k(2)
- 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)..
- 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)..(注意,字母出现的次数,要过滤掉数字)
- 从标准输入读入一个由字母构成的串(不大于30个字符)。从该串中取出3个不重复的字符,求所有的取法。取出的字符,要求按字母升序排列成一个串。不同的取法输出顺序可以不考虑。
- 一个字符串中可能包含a~z中的多个字符,如有重复,求出现次数最多的那个字母及次数,如有多个重复最多的则都输出。
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- java面试题 "aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
- "bcdabcdeaababca",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
- 取字母组成串
- 取字母组成串
- 取字母组成串
- 10、取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为: a(2)b(1)k(2)...
- uva11624
- Making Android Studio pretty配色方案
- 2.5.4函数的使用与返回值
- java中,如何理解MVC思想
- httpClient多线程问题
- 蓝桥杯 取字母组成串 * A B C D中取5次,每个字母都可以重复取出,形成一个串。 现在要求,串中A出现的次数必须为偶数(0次也算偶数)。 求可以形成多少种可能的串。
- CentOS下关闭Sendmail服务的方法
- ReactNative记录(Android)
- Android开发者确保应用程序运行的四大组件
- 多线程同步技术
- 第八章 IO 库
- Python学习:IO基础(2):对文件目录的操作
- android studio视频教程
- 斯特林公式