【254天】我愛刷題系列(13)

叨叨兩句

  1. 戒驕戒躁!
  2. 不要小看任何一個知識點!

題26:正則表達式的一個標準寫法(Pattern)

題目描述

書寫一個類,類名爲Itheima;
類中有一個方法,方法名bobThere;
給你一個字符串,若是包含bob就返回true
注意若是bob中的字符o,能夠是任何字符
例如:bob返回true, bpb返回true正則表達式

提示

方法調用 指望值
bobThere("abcbob") true
bobThere("b9b") true
bobThere("bac") false
public class Itheima {
    public boolean bobThere(String str){
        String regex = "b.b";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        } else {
            return false;
        }
    }
}

題27:查找知足特定條件的指定字符

題目描述

書寫一個類,類名爲Itheima;類中有一個方法,方法名countYZ;數組

給定一個字符串,找出裏面以「y」或者「z」結尾的單詞的個數,也就是說,跟在「y」或者「z」後面的字符不是英文單詞。
「y」在「heavy」中和「z」在「fez」中計數,而「y」在「yellow」中不計數,(不區分大小寫)app

提示

方法調用 指望值
countYZ("fez day") 2
countYZ("day fez") 2
countYZ("day fyyyz") 2
public class Itheima {
    public int countYZ(String str){
        
        int count = 0;
        String str1 = str + " ";
        char[] c = str1.toCharArray();
        for (int i = 0; i < c.length - 1; i++) {
            if(c[i] == 'y' || c[i] == 'z' || c[i] == 'Y' || c[i] == 'Z'){
                char t = c[i + 1];
                if(!((t >= 'a' && t <= 'z') || (t >= 'A' && t <= 'Z'))){
                    count++;
                }
            }
        }
        
    /*    if(c[c.length - 1] == 'y' || c[c.length - 1] == 'z' || c[c.length - 1] == 'Y' || c[c.length - 1] == 'Z'){
            count++;
        }*/
        
        return count;
    }
}

題28:取int類型數字指定位數造成int數組

題目描述

書寫一個類,類名爲Itheima;
類中有一個方法,方法名makePi;
返回一個包含pi(參考Math.PI)的前n位數字的整數數組長度,n爲方法接收的參數。
例如:n爲3,則返回{3,1,4}。oop

提示

方法調用 指望值
makePi(1) [3]
makePi(2) [3,1]
makePi(3) [3,1,4]
public class Itheima {

    public int[] makePi(int n) {
        
        String str = Math.PI + "";
        String str2 = str.replaceAll("\\.", "");
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = Integer.parseInt(str2.charAt(i)+"");
        }
        return arr;
        
        /*int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = (int) (Math.PI * Math.pow(10, i) % 10);
        }
        return arr;*/
    }
}

題29:字符串先後加空格+累積標記

題目描述

書寫一個類,類名爲Itheima;code

類中有一個方法,方法名gHappy;索引

若是字符串中的’g’的相鄰左邊或者右邊有另一個’g’,則’g’在這個字符串中是happy的,
若是字符串中全部的’g’都是happy的則返回true,不然返回false。rem

提示

方法調用 指望值
gHappy("xxggxx") true
gHappy("xxgxx") false
gHappy("xxggyygxx") false字符串

public class Itheima {
    public boolean gHappy(String str){
        
        boolean sumFlag = true;
        boolean flag = true;
        boolean hasG = false;
        String newStr = " " + str + " ";
        
        for (int i = 1; i < newStr.length() - 1; i++) {
            char cBefore = newStr.charAt(i - 1);
            char c = newStr.charAt(i);
            char cLater = newStr.charAt(i + 1);
            if(c == 'g'){
                if(c == cBefore || c == cLater){
                    flag = true;
                } else {
                    flag = false;
                }
                hasG = true;
            } 
            sumFlag = sumFlag && flag;
        }
        return sumFlag && hasG;
    }
}

題30:連續出現字符計數

題目描述

書寫一個類,類名爲Itheima;get

類中有一個方法,方法名maxBlock;string

給定一個字符串,返回該字符串中連續出現個數最多的字符的數量。

提示

方法調用 指望值
maxBlock("hoopla") 2
maxBlock("abbCCCddBBBxx") 3
maxBlock("") 0
int count = 1;//用於做爲中間變量,記錄正在遍歷的字符的個數
        HashMap<Character,Integer> map = new HashMap<>();//Key:字符 Value:最大連續出現次數
        for (int i = 0; i < str.length() - 1; i++) {
            char c1 = str.charAt(i);
            char c2 = str.charAt(i + 1);
            map.put(c1,count);
            if(c1 == c2){
                count++;
                if(count > map.get(c1)){
                    map.put(c1, count);
                }
            } else {
                count = 1;
            }
        }
        
        int totalMax = 0;
        for (Character c : map.keySet()) {
            if(map.get(c) >= totalMax){
                totalMax = map.get(c);
            }
        }
        
        return totalMax;

題31: 排除特定數組索引

題目描述

書寫一個類,類名爲Itheima;
類中有一個方法,方法名sum13;
有一個整型數組,返回的結果是數組全部元素的總和,若是數組中出現整型數13的時候,
那麼元素13和13後面的一個元素也不計入總和裏面。

提示

方法調用 指望值
sum13([1,2,2,1]) 6
sum13([1,1]) 2
sum13([1,2,2,1,13]) 6
public class Itheima {
    public int sum13(int[] arr){
        HashSet<Integer> hs = new HashSet<>();  
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == 13){
                hs.add(i);
                hs.add(i + 1);
            }
        }
        
        for(int i = 0; i < arr.length; i++){
            if(hs.contains(i)){
                continue;
            }
            sum += arr[i];
        }
        return sum;

題32:使用標記切換使用代碼

題目描述

書寫一個類,類名爲Itheima;
類中有一個方法,方法名sum67;
有一個整型數組,返回數組中的數字的總和,若是數組含有數6和7
那麼忽略不計入從6開始並延伸到有7的數字段,7後面的數字須要參與運算(每6個將跟隨至少一個7)。
返回0表示沒有數字。

提示

方法調用 指望值
sum67([1,2,2]) 5
sum67([1,2,2,6,99,99,7]) 5
sum67([1,1,6,7,2]) 4
public class Itheima {
    public int sum67(int[] arr){
        boolean switch67 = true;
        boolean sumFlag = true;
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == 6 && switch67){
                switch67 = false;
                sumFlag = false;
            } 
            
            if(arr[i] == 7 && !switch67){
                switch67 = true;
                sumFlag = true;
                sum -= 7;
            }
            
            if(sumFlag){
                sum += arr[i];
            }
        }
        
        return sum;

題33:刪除不區分大小寫的子字符串

題目描述

書寫一個類,類名爲Itheima;

類中有一個方法,方法名withoutString;

給定兩個字符串參數base和remove,返回刪除了remove字符串的base字符串(不區分大小寫),
而且返回的base字符串不含有remove的重疊事例。
例如:("This is a FISH", "IS") -> "Th a FH" (注意Th和a之間有兩個空格哦)
注意: 指望值裏的一個空格能夠表明多個空格.

提示

方法調用 指望值
withoutString("Hello there","llo") "He there"
withoutString("Hello there","e") "Hllo thr"
withoutString("Hello there","x") "Hello there"
public class Itheima {
    public String withoutString(String base,String remove){
        for (int i = 0; i < base.length() - remove.length(); i++) {
            String str = base.substring(i,remove.length()+ i);
            if(str.equalsIgnoreCase(remove)){
                base = base.replace(str, "");
            }
        }
        return base;
相關文章
相關標籤/搜索