蓝桥杯java试题及答案.docx

上传人:b****5 文档编号:2952656 上传时间:2022-11-16 格式:DOCX 页数:17 大小:21.84KB
下载 相关 举报
蓝桥杯java试题及答案.docx_第1页
第1页 / 共17页
蓝桥杯java试题及答案.docx_第2页
第2页 / 共17页
蓝桥杯java试题及答案.docx_第3页
第3页 / 共17页
蓝桥杯java试题及答案.docx_第4页
第4页 / 共17页
蓝桥杯java试题及答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

蓝桥杯java试题及答案.docx

《蓝桥杯java试题及答案.docx》由会员分享,可在线阅读,更多相关《蓝桥杯java试题及答案.docx(17页珍藏版)》请在冰豆网上搜索。

蓝桥杯java试题及答案.docx

蓝桥杯java试题及答案

蓝桥杯java试题及答案

【篇一:

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

这样的,如果给定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);

}

}

*/

方法二:

importjava.util.arraylist;

importjava.util.iterator;

importjava.util.linkedhashset;

importjava.util.list;

importjava.util.scanner;

importjava.util.set;

publicclassdemo03{

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

publicstaticvoidremoveduplicate(strings,setcharacterlis){

for(charx:

s.tochararray()){

lis.add(x);

}

}

//为方便操作将sets转lis

publicstaticvoidconvert(listcharacterlis,setcharactersets){

iteratorcharacteriter=sets.iterator();

while(iter.hasnext()){

lis.add(iter.next());

}

}

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

publicstaticvoidcheck(setcharactersets){

listcharacterlis=newarraylistcharacter();

convert(lis,sets);//为方便操作将sets转lis

stringbuffersb=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();

setcharactersets=newlinkedhashsetcharacter();

removeduplicate(s,sets);//去掉重复元素,放入lis

check(sets);//检测符合条件的元素组合

}

}

运行结果:

输入串(不大于30个字符)。

abcd

abc

abd

acd

bcd

2.串的简单处理

串的处理

在实际的开发工作中,对字符串的处理是最常见的编程任务。

本题目即是要求程序对用户输入的串进行处理。

具体规则如下:

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));

}

try{

intindex=0;

while(indexvector.size()){

if(index==0vector.elementat(index)=avector.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)=avector.elementat(index)=z)){

vector.set(index,(char)(vector.elementat(index)-(a-a)));

}else

if((vector.elementat(index)=avector.elementat(index)=z)(vector.elementat(index-1)=0vector.elementat(index-1)=9)){

vector.add(index,_);

index++;

}else

if((vector.elementat(index-1)=avector.elementat(index-1)=z)(vector.elementat(index)=0vector.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

}

}

}

运行结果:

youandmewhatcpp2005program

youandmewhatcpp_2005_program

方法二:

importjava.util.scanner;

importjava.util.regex.matcher;

importjava.util.regex.pattern;

/*

*本题目即是要求程序对用户输入的串进行处理。

具体规则如下:

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

*2.把数字与字母之间用下划线字符(_)分开,使得更清晰

*3.把单词中间有多个空格的调整为1个空格。

*我们假设:

用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。

每个单词间由1个或多个空格分隔。

*假设用户输入的串长度不超过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.leng

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1