您的位置:首页 > 编程语言

2016年校招编程笔试题汇总 考点:冒泡排序(稳定排序)、不考虑大小写特殊情况、判断字符串是否包含另一个字符串、判断某个字符串中含有某个字符串的个数

2017-06-08 16:34 519 查看
题目描述:

时间限制:3秒 空间限制:32768K 热度指数:20474
本题知识点: 查找 字符串
算法知识视频讲解


题目描述

请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系。

给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存在包含coder的字符串。
测试样例:
["i am a coder","Coder Coder","Code"],3

返回:["Coder Coder","i am a coder"]


public class Coder {
private static int counter = 0;
public static String[] findCoder(String[] A, int n) {
//包含coder字符串(不区分大小写)
//结果按照coder递减排列:即计数控制
//若两字符串位置相同,则保持原位置关系
int count=0;
for (int i = 0; i < A.length; i++) {
String s=A[i].replace(" ", "");
s=s.toLowerCase();
if(s.indexOf("coder")!=-1){
count++;
}
}
//初始化包含coder字符串数组
String[] Acotains=new String[count];
int ac=0;
while(ac < Acotains.length){
for (int i1 = 0; i1 < A.length; i1++) {
if(A[i1].toLowerCase().indexOf("coder")!=-1){
Acotains[ac++]=A[i1];
}
}
}
// 冒泡排序方法
for (int i = 0; i < Acotains.length - 1; i++) {
for (int x = 0; x < Acotains.length - 1-i; x++) {
int num=countStr(Acotains[x].replace(" ", ""), "coder");
counter=0;
int knum=countStr(Acotains[x+1].replace(" ", ""), "coder");
counter=0;
if (num < knum) {
// 数值交换
String a = Acotains[x];
Acotains[x] = Acotains[x + 1];
Acotains[x + 1] = a;

}
}
}
return Acotains;
}
public static void main(String[] args) {
String[] A={"coder",
"quvnkcoderoscoderspxqcoderboxlscoderxtzhcoderxdnccoderqjwcoderduhcoderfewpwcoderlhwlcoderrkexcoderqmmbcoderfbcoderuscoderocoderdhgvpcoderuoocoderiwircoder",
"yngfcodervcoderrazxcoderwwbcoderxxkqvcoderiruzmcoderbxcoderchcoderddutcoderecoderkbmcoderzcoderhcoderfoocoder",
"focoderqbnacoderkmnuicoderimdcoderwkcoderqsyhcoderfuzqcoderzsncodersigocoder",
"lhkscoder",
"uscodersupcoderwuxlhcoderbzcodersskcoderaycoderlpcmcoderzgvcodertcodergcoderiqdcoderthpcoderkahzlcoderfucodericodervcoderywzlzcoderddcoder",
"jwywpcoderssmcoderdcpcodertubucoderitmucoder",
"oqvcodermrcoderoyecodertkecodergacoderlscoderrmcoderyuvccoderxcoderrnzmmcoderacoderhcoderijcoderjycoderkgycoder",
"scwpcoderbuffcoderdacoderfnacoderycodervjcoderkzcoderbcodertavphcoder",
"lxtcoderdgnjcoderyljvacodernwvcoderxdcodertmjgcoderjrvtcoderacoscodereqcoderdevjcoderdskhbcodertcoderccoder",
"xqoaxcoderwcoderrxcucoderplcodermmsjwcoderyfcoderscodervnacoder",
"vqicoderlcoderecoder",
"ccoderqeufcoderioozcoderkdtcoderyfojcodertfhicodervcoderqcoderdacoderapghcodervwscfcodernttcoderltbncoderecodermwcgcoderhqhtcoder",
"rcoderqyzgcoderyfdfcodermycoderibbfcoderqbescoderftoqocoderufblcodertcoderlbtkcoderutcoderbcoderwecoderdzpcoderrbmpcoderdcoderdcodericoderdlcoder",
"mvhncodervccoderczzcoderouajqcoderpcoderldcoderiuhmncoderwzdjcoderzocoderpcodergtfccoderocoderohipqcoderaveqccodertrgcoder",
"rqcoderygnpqcoderwwcodertjiikcodertmsghcoderacoderocoderrvyfxcoderyibaqcoderfvscodervocoderrwezocoderwecoderbefcoderqavcoderncoderaemvcoderyguncoder",
"pgicodergcoderfocoderefdhcoderdksdacoderwvnccoderuwscoderdzveccoderyvcodertmcoder","qmcoderfaqhcodercfcoderdcodercvrjmcoderixnykcoderzunsmcoderkwzcoderjdwcoderzacodervaglccoder",
"ncodersdnpcoderldcoderuzcodervqtdxcodertwcoderscoderecoderynntcodervalcoderdmacoderocoderbpkcoderfpvwtcoderjcoderpobscoder",
"shmcoderbimcoderuecoderfgzhxcodermcoderkuhhcodertlqcoderrcoderlrcoderhiehcoderbjxvlcoderycodercczlucoderizgdqcoderhcodersjcoderejwycoderwcodermocoderdcoder",
"pscodernvtwgcoder",
"kcodereewcoderrcoderzccoderkacodermbqaccoder",
"nbcodervzhscodergcoderanlwtcoderaepldcoderycciwcoderrorezcodermdcucoderxscoderryceecoderrlppcoderjncokcoderulccodergwcoderquvcoderhcoderhtcoderphyfcoderdobzcoder",
"kcoderxdqtcoder"};
int n=4;
String[] Acotains=findCoder(A,n);
for (int i = 0; i < Acotains.length; i++) {
System.out.println(Acotains[i]);
}
}
/**
* 判断str1中包含str2的个数
* @param str1
* @param str2
* @return counter
*/
public static int countStr(String str1, String str2) {
str1=str1.toLowerCase();
str2=str2.toLowerCase();
if (str1.indexOf(str2) == -1) {
return 0;
} else if (str1.indexOf(str2) != -1) {
counter++;
countStr(str1.substring(str1.indexOf(str2) +
str2.length()), str2);
return counter;
}
return 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: