2016年校招编程笔试题汇总 考点:冒泡排序(稳定排序)、不考虑大小写特殊情况、判断字符串是否包含另一个字符串、判断某个字符串中含有某个字符串的个数
2017-06-08 16:34
519 查看
题目描述:
时间限制:3秒 空间限制:32768K 热度指数:20474
本题知识点: 查找 字符串
算法知识视频讲解
请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系。
给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存在包含coder的字符串。
测试样例:
时间限制: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; } }
相关文章推荐
- java中指定字符串是否包含一个字串。(比如判断邮箱是否含有@)
- 判断一个字符串中是否含有另一个字符串
- 判断一个给定的字符串通过循环移位是否可以包含另一个字符串
- 判断某个字符串中是否含有特殊字符
- php处理字符串,判断是否含有特殊符号,非中文,数字,字符
- object-C 判断字符串是否含有特殊字符
- Java 编程下正则表达式判断字符串是否包含中文
- 模仿String.indexOf,判断一个字符串是否包含另一个字符串
- java判断字符串是否全部由数字,大小写字母,特殊符号组成
- php判断一个字符串是否被包含在另一个字符串中
- SQLSERVER 判断一个字符串是否包含特殊字符
- 判断一个给定的字符串通过循环移位是否可以包含另一个字符串
- Java中判断一个字符串String是否包含特殊字符的代码
- php怎样判断一个字符串是否包含另一个字符串strpos()
- 判断一个字符串是否包含特殊字符
- 判断字符串是否包含另一个字符串
- asp.net判断字符串是否包含特殊字符
- js--判断--判断一个字符串是否包含另一个字符串
- 判断两个div的位置是否相交,可以判断相互包含的特殊情况
- js 经典正则判断 一个字符串是否包含另一个字符串