1915. Number of Wonderful Substrings
Đề bài :
Một chuỗi Wonderful là một chuỗi trong đó có nhiều nhất một chữ cái xuất hiện với số lần lẻ.
Cho một từ chuỗi bao gồm mười chữ cái tiếng Anh viết thường đầu tiên ('a' đến 'j'), trả về số lần xuất hiện chuỗi wonderful non-empty substring trong word
Nếu cùng một chuỗi con xuất hiện nhiều lần trong word thì hãy đếm riêng từng lần xuất hiện.
Chuỗi con là một chuỗi ký tự liền kề nhau trong một chuỗi.
Ví dụ :
Nếu ccjjc và abab,là chuỗi tuyệt vời còn ab thì không phải
Example 1:
Input: word = "aba" Output: 4 Explanation: The four wonderful substrings are underlined below:
- "**a**ba" -> "a"
- "a**b**a" -> "b"
- "ab**a**" -> "a"
- "aba" -> "aba"
Example 2:
Input: word = "aabb" Output: 9 Explanation: The nine wonderful substrings are underlined below:
- "**a**abb" -> "a"
- "**aa**bb" -> "aa"
- "**aab**b" -> "aab"
- "aabb" -> "aabb"
- "a**a**bb" -> "a"
- "a**abb**" -> "abb"
- "aa**b**b" -> "b"
- "aa**bb**" -> "bb"
- "aab**b**" -> "b"
Example 3:
Input: word = "he" Output: 2 Explanation: The two wonderful substrings are underlined below: - "he" -> "h" - "he" -> "e"
Constraints:
1 <= word.length <= 10``5wordconsists of lowercase English letters from'a'to'j'.
Bài giải :
/**
* @param {string} word
* @return {number}
*/
var wonderfulSubstrings = function (word) {};
Giải thích code:
Thuật toán này có độ phức tạp là 0(n)
Độ phức tạp về không gian là O(n)
ch không xuất hiện trong word 3. Tiếp theo tạo 1 biến là revertString để lưu lại dãy cần revert 4. Tạo vòng for chạy từ index đến 0 và cộng ký tự vào chuỗi này 5. Trả về chuỗi revertString cộng với dãy word cắt từ vị trí index trở đi đến cuối cùng