g3201_3300.s3271_hash_divided_string.readme.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java Show documentation
Show all versions of leetcode-in-java Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
The newest version!
3271\. Hash Divided String
Medium
You are given a string `s` of length `n` and an integer `k`, where `n` is a **multiple** of `k`. Your task is to hash the string `s` into a new string called `result`, which has a length of `n / k`.
First, divide `s` into `n / k` **substrings**, each with a length of `k`. Then, initialize `result` as an **empty** string.
For each **substring** in order from the beginning:
* The **hash value** of a character is the index of that character in the **English alphabet** (e.g., `'a' → 0`, `'b' → 1`, ..., `'z' → 25`).
* Calculate the _sum_ of all the **hash values** of the characters in the substring.
* Find the remainder of this sum when divided by 26, which is called `hashedChar`.
* Identify the character in the English lowercase alphabet that corresponds to `hashedChar`.
* Append that character to the end of `result`.
Return `result`.
**Example 1:**
**Input:** s = "abcd", k = 2
**Output:** "bf"
**Explanation:**
First substring: `"ab"`, `0 + 1 = 1`, `1 % 26 = 1`, `result[0] = 'b'`.
Second substring: `"cd"`, `2 + 3 = 5`, `5 % 26 = 5`, `result[1] = 'f'`.
**Example 2:**
**Input:** s = "mxz", k = 3
**Output:** "i"
**Explanation:**
The only substring: `"mxz"`, `12 + 23 + 25 = 60`, `60 % 26 = 8`, `result[0] = 'i'`.
**Constraints:**
* `1 <= k <= 100`
* `k <= s.length <= 1000`
* `s.length` is divisible by `k`.
* `s` consists only of lowercase English letters.
© 2015 - 2024 Weber Informatics LLC | Privacy Policy