蓝桥杯java历年真题及答案整理(共129道题目及答案)

2018-12-23 23:59

1.字符排序

算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。 package Question1_9; import java.util.Scanner; import java.util.Vector;

public class Question1 { }

public static long count=0;

private void fullPermutation(Vectorsourse, Vector result) { if(sourse.size()==0){ }

} }

for (int i = 0; i < sourse.size(); i++) {

Vectortsourse=new Vector(sourse); Vectortresult=new Vector(result); tresult.add(sourse.elementAt(i)); tsourse.remove(i);

new Question1().fullPermutation(tsourse, tresult); for (int i = 0; i < result.size(); i++) { }

System.out.print(\count++; return;

System.out.print(result.elementAt(i));

public static void main(String[] args) { Scanner scanner=new Scanner(System.in); }

int n=scanner.nextInt();

Vector sourse=new Vector(); Vector result=new Vector(); for (int i = 0; i < n; i++) { sourse.add((char)('A'+i)); }

new Question1().fullPermutation(sourse, result); System.out.println(Question1.count);

方法二:

import java.util.ArrayList; import java.util.Iterator;

import java.util.LinkedHashSet;

1

import java.util.List; import java.util.Scanner; import java.util.Set;

public class Demo03 {

// 去掉重复元素,放入lis

public static void removeDuplicate(String s,Set lis){ for(char x:s.toCharArray()){ lis.add(x); } }

// 为方便操作 将 sets 转 lis

public static void convert(List lis,Set sets){ Iterator iter = sets.iterator(); while(iter.hasNext()){ lis.add(iter.next()); } }

// 检测符合条件的元素组合

public static void check(Set sets){ List lis = new ArrayList(); convert(lis,sets); // 为方便操作 将 sets 转 lis StringBuffer sb = new StringBuffer(); for(int i=0;i

for(int j=i+1;j+1

System.out.println(sb); // 输出组合 sb.setLength(0); // 清空 } } } }

public static void main(String[] args){

Scanner scan = new Scanner(System.in);

System.out.println(\输入串(不大于30个字符)。\ String s = scan.nextLine();

Set sets = new LinkedHashSet(); removeDuplicate(s,sets); // 去掉重复元素,放入lis check(sets); // 检测符合条件的元素组合 } }

运行结果:

2

输入串(不大于30个字符)。 abcd abc abd acd bcd

2.串的简单处理

串的处理

在实际的开发工作中,对字符串的处理是最常见的编程任务。 本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。

2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 3. 把单词中间有多个空格的调整为1个空格。 例如:

用户输入:

you and me what cpp2005program 则程序输出:

You And Me What Cpp_2005_program 用户输入:

this is a 99cat 则程序输出:

This Is A 99_cat

我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。 每个单词间由1个或多个空格分隔。

假设用户输入的串长度不超过200个字符。

package Question1_9; import java.util.Scanner; import java.util.Vector;

public class Question2 { public static void main(String[] args) {

Scanner scanner=new Scanner(System.in); String string=scanner.nextLine();

Vectorvector=new Vector(); for (int i = 0; i < string.length(); i++) { vector.add(string.charAt(i)); } try { int index=0;

while (index

if(index==0&&vector.elementAt(index)>='a'&&vector.elementAt(index)<='z'){ vector.set(index, (char)(vector.elementAt(index)-('a'-'A')));

}else if(vector.elementAt(index-1)==' '&&vector.elementAt(index)==' '){ vector.remove(index);

3

index--; }else

if (vector.elementAt(index-1)=='

'&&(vector.elementAt(index)>='a'&&vector.elementAt(index)<='z')) { vector.set(index, (char)(vector.elementAt(index)-('a'-'A')));

}else

if((vector.elementAt(index)>='a'&&vector.elementAt(index)<='z')&&(vector.elementAt(index-1)>='0'&&vector.elementAt(index-1)<='9')){

vector.add(index, '_'); index++;

}else

if((vector.elementAt(index-1)>='a'&&vector.elementAt(index-1)<='z')&&(vector.elementAt(index)>='0'&&vector.elementAt(index)<='9')){

}

}

} index++;

vector.add(index, '_'); index++;

}

for (int i = 0; i

System.out.println(); // TODO: handle exception

} catch (ArrayIndexOutOfBoundsException e) {

}

运行结果:

you and me what cpp2005program You And Me What Cpp_2005_program

方法二:

import java.util.Scanner;

import java.util.regex.Matcher; import java.util.regex.Pattern;

/*

* 本题目即是要求程序对用户输入的串进行处理。具体规则如下:

*1. 把每个单词的首字母变为大写。

*2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 *3. 把单词中间有多个空格的调整为1个空格。

*我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。

*假设用户输入的串长度不超过200个字符。 */

public class SimpleString { public static void main(String args[]){

String str=\

str=(new Scanner(System.in)).nextLine();

4

}

}

String []str1=str.split(\

for(int i=0;i

for(int i=0;i

s+=str1[str1.length-1]; Pattern p=Pattern.compile(\

Matcher m=p.matcher(s); String fin=\

int st=0;

while(m.find()){ int start=m.start(); }

if(st

int end=m.end(); fin+=s.substring(st,start); if(s.charAt(start-1)!=' ')fin+=\fin+=m.group(1);

if(s.charAt(end)!=' ')fin+=\st=end; s+=str1[i]+\

方法三:

import java.util.Scanner;

import java.util.regex.Matcher; import java.util.regex.Pattern;

public class Demo02 {

public static void print(String[] s){ for(int i=0;i

System.out.println(s[s.length-1]); }

public static void main(String[] args) {

Scanner scan = new Scanner(System.in); String s = scan.nextLine(); String[] ss = s.split(\

for(int i=0;i

String up = (\大写 StringBuffer sb = new StringBuffer(ss[i]);

ss[i] = sb.replace(0, 1, up).toString();

Matcher m = Pattern.compile(\

5


蓝桥杯java历年真题及答案整理(共129道题目及答案).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《素质教育专题》第04章在线测试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: