2016年校招编程笔试题汇总 考点:冒泡排序(稳定排序)、不考虑大小写特殊情况、判断字符串是否包含另一个字符串、判断某个字符串中含有某个字符串的个数
来源:互联网 发布:安卓手机优化软件 知乎 编辑:程序博客网 时间:2024/06/08 17:00
题目描述:
时间限制: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; } }
阅读全文
0 0
- 2016年校招编程笔试题汇总 考点:冒泡排序(稳定排序)、不考虑大小写特殊情况、判断字符串是否包含另一个字符串、判断某个字符串中含有某个字符串的个数
- 判断某个字符串中是否包含另一个字符串
- 判断某个字符串中是否含有特殊字符
- 判断字符串中是否含有某个字符
- 判断字符串中是否含有某个字符
- android 判断某个字符串包含某个字符串的个数
- IOS判断字符串是否包含某个字符串
- iOS 判断字符串中含有某个字符串
- C++判断字符串中是否含有某个子字符串
- JS判断字符串中是否含有某个字符的方法
- 判断String中包含某个字符串的个数
- JS判断字符串是否含有某个字串
- 判断字符串中包含某个字符串
- 判断字符串是否包含某个子字符串的方法
- javascript 判断string是否包含某个字符串
- 判断字符串是否包含某个字符
- jquery判断是否包含某个字符串
- 判断NSString是否包含某个字符串
- 统一接口调用
- 无序数组中求中位数
- Python多线程
- JavaScript字符串indexOf方法浅析
- LeetCode
- 2016年校招编程笔试题汇总 考点:冒泡排序(稳定排序)、不考虑大小写特殊情况、判断字符串是否包含另一个字符串、判断某个字符串中含有某个字符串的个数
- 支持向量机详解
- 康托展开和逆康托展开
- html5移动开发屏幕宽度相关概念
- TensorFlow深度学习框架
- RateLimit
- 给初学者的RxJava2.0教程(三)
- jdbcTemplate 实现查询返回list
- enum 枚举的使用