没有合适的资源?快使用搜索试试~ 我知道了~
首页蓝桥杯java历年真题及答案整理.doc
蓝桥杯Java历年真题及答案整理文档涵盖了关于Java编程竞赛中常见的字符排序算法题目。在这个部分,我们看到的是一个名为`Question1`的Java类,它与字符全排列问题有关。题目要求对N个不同字符进行全排列,例如给定字符集`A、B、C`时,全排列的结果会是6种情况(即3的阶乘3!)。全排列算法的关键在于递归实现,通过`fullPermutation`方法来完成。 `fullPermutation`方法采用深度优先搜索策略,首先检查源向量`sourse`是否为空。若为空,则遍历结果向量`result`,打印当前排列并计数器加一。接着,对于源向量中的每个元素,创建两个新的子向量`tsource`和`tresult`,将源元素添加到`tresult`并将源元素从`sourse`中移除,然后递归调用`fullPermutation`方法处理剩余元素。这个过程确保了所有可能的排列组合都被探索和生成。 在`main`函数中,程序首先读取用户输入的字符数量`n`,并将'A'到'A+n-1'的字符添加到`sourse`中。然后,调用`fullPermutation`方法对这些字符进行全排列,并在排列完成后输出排列总数。 这部分代码展示了Java编程中如何利用递归算法解决字符全排列问题,这对于理解递归、动态规划以及数据结构(如向量)在实际编程中的应用十分关键。同时,这也是蓝桥杯这类编程竞赛中常见的基础题目,旨在考察选手的逻辑思维、算法理解和语言运用能力。通过练习这类题目,参赛者可以提升自己的编程技巧和解决问题的能力。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/88709309/bg10.jpg)
16
}
if(telphone.charAt(0)==telphone.charAt(2)&&telphone.charAt(1)==telphone.charAt(3)){
sum+=1;
}
/*
* 情况四
*/
for (int i = 0; i < 4; i++) {
if(telphone.charAt(i)=='6'||telphone.charAt(i)=='8'||telphone.charAt(i)=='9'){
sum+=1;
}
}
System.out.println(sum);
}
}
}
运行结果:
14
3045
0211
…..
…..
……
8
5
方法二:
import java.util.Scanner;
public class Demo07 {
// 输入数据
public static void input(String[] n){
Scanner scan = new Scanner(System.in);
int i = 0;
while(i<n.length){
n[i++] = scan.nextLine();
}
}
// 得到分数
public static int getGrade(String n){
int s = 0; // 总分
char[] x = n.toCharArray();
int a = x[0]-'0';
int b = x[1]-'0';
int c = x[2]-'0';
int d = x[3]-'0';
![](https://csdnimg.cn/release/download_crawler_static/88709309/bg11.jpg)
17
if(a+1==b&&b+1==c&&c+1==d||a-1==b&&b-1==c&&c-1==d){
s += 5; // 1.出现连号 +5 分
}
if(a==b&&b==c){
s += 3; // 2.三个数字相同 (前三)+3 分
}
if(b==c&&c==d){
s += 3; // 2.三个数字相同 (后三)+3 分
}
if(a==b&&c==d){
s += 1; // 3.AABB 模式 +1 分
}
if(a==c&&b==d){
s += 1; // 3.ABAB 模式 +1 分
}
if(a==6||a==8||a==9){
s += 1; // 4.a 含有:6 或 8 或 9 +1 分
}
if(b==6||b==8||b==9){
s += 1; // 4.b 含有:6 或 8 或 9 +1 分
}
if(c==6||c==8||c==9){
s += 1; // 4.c 含有:6 或 8 或 9 +1 分
}
if(d==6||d==8||d==9){
s += 1; // 4.d 含有:6 或 8 或 9 +1 分
}
return s;
}
// 取得每一行分数并输出
public static void fun(String[] n){
for(String x:n){
System.out.println(getGrade(x));
}
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String[] n = new String[scan.nextInt()];
input(n); // 输入数据
fun(n);
}
}
![](https://csdnimg.cn/release/download_crawler_static/88709309/bg12.jpg)
18
运行结果:
14
3045
0211
2345
6543
7777
8888
7878
7788
6688
2424
2244
9918
6789
8866
0
0
5
6
8
12
3
3
5
1
1
3
8
5
6.括号问题
下面的代码用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能
交叉
例如:
..(..[..]..).. 是允许的
..(...[...)....].... 是禁止的
对于 main 方法中的测试用例,应该输出:
false
true
false
false
![](https://csdnimg.cn/release/download_crawler_static/88709309/bg13.jpg)
19
请分析代码逻辑,并推测划线处的代码。
答案写在“解答.txt”文件中
注意:只写划线处应该填的内容,划线前后的内容不要抄写。
import java.util.*;
publicclassDemo06 {
publicstaticboolean isGoodBracket(String s) {
Stack<Character> a = new Stack<Character>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(')
a.push(')');
if (c == '[')
a.push(']');
if (c == '{')
a.push('}');
if (c == ')' || c == ']' || c == '}') {
if (a.size()==0)
returnfalse; // 填空
if (a.pop() != c)
returnfalse;
}
}
if (a.size()!=0)
returnfalse; // 填空
returntrue;
}
publicstaticvoid main(String[] args) {
System.out.println(isGoodBracket("...(..[.)..].{.(..).}..."));
System.out.println(isGoodBracket("...(..[...].(.).).{.(..).}..."));
System.out.println(isGoodBracket(".....[...].(.).){.(..).}..."));
System.out.println(isGoodBracket("...(..[...].(.).){.(..)...."));
}
}
运行结果:
false
true
false
false
7.扑克牌排列
下面代码模拟了一套扑克牌(初始排序 A~K,共 13 张)的操作过程。
操作过程是:
手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,....
如此循环操作,直到剩下最后一张牌也放在桌子上。
下面代码的目的就是为了求出最后桌上的牌的顺序。
初始的排列如果是 A,2,3...K,则最后桌上的顺序为:
![](https://csdnimg.cn/release/download_crawler_static/88709309/bg14.jpg)
20
[2, 4, 6, 8, 10, Q, A, 5, 9, K, 7, 3, J]
请分析代码逻辑,并推测划线处的代码。
答案写在“解答.txt”文件中
注意:只写划线处应该填的内容,划线前后的内容不要抄写。
package Question1_9;
import java.util.Arrays;
import java.util.List;
import java.util.Vector;
public class Question7 {
public static List moveCard(List src) {
if (src == null)
return null;
List dst = new Vector();
for (;;) {
if (src.size()==0)
break; // 填空
src.add(src.remove(0));
dst.add(src.remove(0)); // 填空
}
return dst;
}
public static void main(String[] args) {
List a = new Vector();
a.addAll(Arrays.asList("A", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "J", "Q", "K"));
System.out.println(moveCard(a));
}
}
运行结果:
[2, 4, 6, 8, 10, Q, A, 5, 9, K, 7, 3, J]
方法二:
import java.util.ArrayList;
public class Squeezer {
public static void main(String args[]){
ArrayList<String> list=new ArrayList();
list.add("K");
list.add("Q");
list.add("J");
list.add("10");
list.add("9");
list.add("8");
list.add("7");
list.add("6");
list.add("5");
list.add("4");
剩余250页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/bec0742667c34ade8c23f0478b0db3a1_xdpcxq1029.jpg!1)
xdpcxq1029
- 粉丝: 1289
- 资源: 268
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- BSC关键绩效财务与客户指标详解
- 绘制企业战略地图:从财务到客户价值的六步法
- BSC关键绩效指标详解:财务与运营效率评估
- 手持移动数据终端:常见问题与WIFI设置指南
- 平衡计分卡(BSC):绩效管理与战略实施工具
- ESP8266智能家居控制系统设计与实现
- ESP8266在智能家居中的应用——网络家电控制系统
- BSC:平衡计分卡在绩效管理与信息技术中的应用
- 手持移动数据终端:常见问题与解决办法
- BSC模板:四大领域关键绩效指标详解(财务、客户、运营与成长)
- BSC:从绩效考核到计算机网络的关键概念
- BSC模板:四大维度关键绩效指标详解与预算达成分析
- 平衡计分卡(BSC):绩效考核与战略实施工具
- K-means聚类算法详解及其优缺点
- 平衡计分卡(BSC):从绩效考核到战略实施
- BSC:平衡计分卡与计算机网络中的应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)