您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 蓝桥杯java历年真题及答案整理(共129道题目及答案)
1蓝桥杯java历年真题及答案整理(参考网络资料整理出来)1.字符排序算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。packageQuestion1_9;importjava.util.Scanner;importjava.util.Vector;publicclassQuestion1{publicstaticlongcount=0;privatevoidfullPermutation(VectorCharactersourse,VectorCharacterresult){if(sourse.size()==0){for(inti=0;iresult.size();i++){System.out.print(result.elementAt(i));}System.out.print(\n);count++;return;}for(inti=0;isourse.size();i++){VectorCharactertsourse=newVectorCharacter(sourse);VectorCharactertresult=newVectorCharacter(result);tresult.add(sourse.elementAt(i));tsourse.remove(i);newQuestion1().fullPermutation(tsourse,tresult);}}publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);intn=scanner.nextInt();VectorCharactersourse=newVectorCharacter();VectorCharacterresult=newVectorCharacter();for(inti=0;in;i++){sourse.add((char)('A'+i));}newQuestion1().fullPermutation(sourse,result);System.out.println(Question1.count);2}}方法二:importjava.util.ArrayList;importjava.util.Iterator;importjava.util.LinkedHashSet;importjava.util.List;importjava.util.Scanner;importjava.util.Set;publicclassDemo03{//去掉重复元素,放入lispublicstaticvoidremoveDuplicate(Strings,SetCharacterlis){for(charx:s.toCharArray()){lis.add(x);}}//为方便操作将sets转lispublicstaticvoidconvert(ListCharacterlis,SetCharactersets){IteratorCharacteriter=sets.iterator();while(iter.hasNext()){lis.add(iter.next());}}//检测符合条件的元素组合publicstaticvoidcheck(SetCharactersets){ListCharacterlis=newArrayListCharacter();convert(lis,sets);//为方便操作将sets转lisStringBuffersb=newStringBuffer();for(inti=0;ilis.size()-2;i++){for(intj=i+1;j+1lis.size();j++){//向后添加两位,所以j+1lis.size()for(intk=j+1;klis.size();k++){sb.append(lis.get(i));sb.append(lis.get(j));sb.append(lis.get(k));System.out.println(sb);//输出组合sb.setLength(0);//清空}}}}publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.println(输入串(不大于30个字符)。);Strings=scan.nextLine();3SetCharactersets=newLinkedHashSetCharacter();removeDuplicate(s,sets);//去掉重复元素,放入lischeck(sets);//检测符合条件的元素组合}}运行结果:输入串(不大于30个字符)。abcdabcabdacdbcd2.串的简单处理串的处理在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:1.把每个单词的首字母变为大写。2.把数字与字母之间用下划线字符(_)分开,使得更清晰3.把单词中间有多个空格的调整为1个空格。例如:用户输入:youandmewhatcpp2005program则程序输出:YouAndMeWhatCpp_2005_program用户输入:thisisa99cat则程序输出:ThisIsA99_cat我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。假设用户输入的串长度不超过200个字符。packageQuestion1_9;importjava.util.Scanner;importjava.util.Vector;publicclassQuestion2{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Stringstring=scanner.nextLine();VectorCharactervector=newVectorCharacter();for(inti=0;istring.length();i++){vector.add(string.charAt(i));}4try{intindex=0;while(indexvector.size()){if(index==0&&vector.elementAt(index)='a'&&vector.elementAt(index)='z'){vector.set(index,(char)(vector.elementAt(index)-('a'-'A')));}elseif(vector.elementAt(index-1)==''&&vector.elementAt(index)==''){vector.remove(index);index--;}elseif(vector.elementAt(index-1)==''&&(vector.elementAt(index)='a'&&vector.elementAt(index)='z')){vector.set(index,(char)(vector.elementAt(index)-('a'-'A')));}elseif((vector.elementAt(index)='a'&&vector.elementAt(index)='z')&&(vector.elementAt(index-1)='0'&&vector.elementAt(index-1)='9')){vector.add(index,'_');index++;}elseif((vector.elementAt(index-1)='a'&&vector.elementAt(index-1)='z')&&(vector.elementAt(index)='0'&&vector.elementAt(index)='9')){vector.add(index,'_');index++;}index++;}for(inti=0;ivector.size();i++){System.out.print(vector.elementAt(i));}System.out.println();}catch(ArrayIndexOutOfBoundsExceptione){//TODO:handleexception}}}运行结果:youandmewhatcpp2005programYouAndMeWhatCpp_2005_program方法二:importjava.util.Scanner;importjava.util.regex.Matcher;importjava.util.regex.Pattern;/**本题目即是要求程序对用户输入的串进行处理。具体规则如下:*1.把每个单词的首字母变为大写。*2.把数字与字母之间用下划线字符(_)分开,使得更清晰*3.把单词中间有多个空格的调整为1个空格。*我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格5分隔。*假设用户输入的串长度不超过200个字符。*/publicclassSimpleString{publicstaticvoidmain(Stringargs[]){Stringstr=;str=(newScanner(System.in)).nextLine();String[]str1=str.split([]+);for(inti=0;istr1.length;i++)str1[i]=String.valueOf((char)(str1[i].charAt(0)+('A'-'a')))+str1[i].substring(1);Strings=;for(inti=0;istr1.length-1;i++)//System.out.print(str1[i]+);{s+=str1[i]+;}s+=str1[str1.length-1];Patternp=Pattern.compile(([0-9]+));Matcherm=p.matcher(s);Stringfin=;intst=0;while(m.find()){intstart=m.start();intend=m.end();fin+=s.substring(st,start);if(s.charAt(start-1)!='')fin+=_;fin+=m.group(1);if(s.charAt(end)!='')fin+=_;st=end;}if(sts.length())fin+=s.substring(st);System.out.println(fin);}}方法三:importjava.util.Scanner;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassDemo02{publicstaticvoidprint(String[]s){for(inti=0;is.length-1;i++){System.out.print(s[i]+);}System.out.println(s[s.length-1]);}publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);6Strings=scan.nextLine();String[]ss=s.split(
本文标题:蓝桥杯java历年真题及答案整理(共129道题目及答案)
链接地址:https://www.777doc.com/doc-2525268 .html