Day7(字串)|344.反轉字串 541.反轉字串II 54.替換數字

flydandelion發表於2024-07-10

344.反轉字串

編寫一個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 s 的形式給出。

不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列、使用 O(1) 的額外空間解決這一問題。

示例 1:

輸入:s = ["h","e","l","l","o"]
輸出:["o","l","l","e","h"]

示例 2:

輸入:s = ["H","a","n","n","a","h"]
輸出:["h","a","n","n","a","H"]

簡單題不寫思路

程式碼如下:

public void reverseString(char[] s) {
            int n = s.length;
            for (int left = 0, right = n - 1; left < right; ++left, --right) {
                char tmp = s[left];
                s[left] = s[right];
                s[right] = tmp;
            }
        }

541.反轉字串II

給定一個字串 s 和一個整數 k,從字串開頭算起,每計數至 2k 個字元,就反轉這 2k 字元中的前 k 個字元。

  • 如果剩餘字元少於 k 個,則將剩餘字元全部反轉。
  • 如果剩餘字元小於 2k 但大於或等於 k 個,則反轉前 k 個字元,其餘字元保持原樣。

示例 1:

輸入:s = "abcdefg", k = 2
輸出:"bacdfeg"

示例 2:

輸入:s = "abcd", k = 2
輸出:"bacd"

程式碼如下:

 public String reverseStr(String s, int k) {
        int n = s.length();
        char[] arr = s.toCharArray();
        for (int i = 0; i < n; i += 2 * k) {
            reverse(arr, i, Math.min(i + k, n) - 1);
        }
        return new String(arr);
    }

    public void reverse(char[] arr, int left, int right) {
        while (left < right) {
            char temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
            left++;
            right--;
        }
    }

54.替換數字

題目描述

給定一個字串 s,它包含小寫字母和數字字元,請編寫一個函式,將字串中的字母字元保持不變,而將每個數字字元替換為number。 例如,對於輸入字串 "a1b2c3",函式應該將其轉換為 "anumberbnumbercnumber"。

輸入描述

輸入一個字串 s,s 僅包含小寫字母和數字字元。

輸出描述

列印一個新的字串,其中每個數字字元都被替換為了number

輸入示例
a1b2c3
輸出示例
anumberbnumbercnumber

程式碼如下:

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            if (Character.isDigit(s.charAt(i))) {//Character.isDigit(char ch) 是一個靜態方法,用於檢查指定的字元是否是一個數字
                sb.append("number");
            }else sb.append(s.charAt(i));
        }
        System.out.println(sb);
    }
}

相關文章