同花顺二面

题一:字符串子串判断

给两个字符串A,B,判断B是A的子串。
public class Test1_1 {
    public static boolean compare(String a, String b){
        boolean flag = false;
        int a_length = 0;
        for(int i=0;i<b.length();i++){
            int temp_index = 0;
            String temp = b.substring(i);
            if(temp.length()<a.length())return flag;
            for(int j=0;j<a.length();j++){
                if(temp.charAt(temp_index)==a.charAt(j)){
                    a_length++;
                    temp_index++;
                }else{
                    a_length=0;
                    break;
                }
            }
            if(a_length==a.length()){
                flag=true;
            }
        }
        return flag;
    }
    public static void main(String[] args) {
        String lineA = "AAABBCCC";
        String lineB = "BBBCCEEDDDAAABBCCCWWWDDD";
        System.out.println(compare(lineA,lineB));
    }
}

题二:任意排序

把java的快排写了一遍,排序顺序是从大到小。

public class Test1_1 {
    public static void quickSort(int[] num,int l,int r){
        int i=l,j=r;
        if(i>=j)return;
        int temp = num[l];
        while (i<j){
            while (i<j&&num[j]<=temp)j--;
            num[i]=num[j];
            while (i<j&&num[i]>=temp)i++;
            num[j]=num[i];
        }
        num[i]=temp;
        quickSort(num,l,i-1);
        quickSort(num,i+1,r);
    }
    public static void main(String[] args) {
        int[] nums = {3,11,8,12,6,5};
        quickSort(nums,0,nums.length-1);
        for(int t:nums){
            System.out.print(t+" ");
        }
    }
}