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
原创粉丝点击