g2401_2500.s2405_optimal_partition_of_string.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g2401_2500.s2405_optimal_partition_of_string;
// #Medium #String #Hash_Table #Greedy #2022_10_23_Time_7_ms_(99.40%)_Space_43.3_MB_(91.63%)
/**
* 2405 - Optimal Partition of String\.
*
* Medium
*
* Given a string `s`, partition the string into one or more **substrings** such that the characters in each substring are **unique**. That is, no letter appears in a single substring more than **once**.
*
* Return _the **minimum** number of substrings in such a partition._
*
* Note that each character should belong to exactly one substring in a partition.
*
* **Example 1:**
*
* **Input:** s = "abacaba"
*
* **Output:** 4
*
* **Explanation:**
*
* Two possible partitions are ("a","ba","cab","a") and ("ab","a","ca","ba").
*
* It can be shown that 4 is the minimum number of substrings needed.
*
* **Example 2:**
*
* **Input:** s = "ssssss"
*
* **Output:** 6
*
* **Explanation:**
*
* The only valid partition is ("s","s","s","s","s","s").
*
* **Constraints:**
*
* * 1 <= s.length <= 105
* * `s` consists of only English lowercase letters.
**/
public class Solution {
public int partitionString(String s) {
int count = 1;
boolean[] arr = new boolean[26];
for (char c : s.toCharArray()) {
if (arr[c - 'a']) {
count++;
arr = new boolean[26];
}
arr[c - 'a'] = true;
}
return count;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy