---
tags: leetcode
---
# [1525. Number of Good Ways to Split a String](https://leetcode.com/problems/number-of-good-ways-to-split-a-string/)
---
# My Solution
## The Key Idea for Solving This Coding Question
## C++ Code
```cpp=
class Solution {
public:
int numSplits(string s) {
vector<int> leftSplit(s.size());
unordered_set<char> leftSet;
for (int i = 0; i < s.size(); ++i) {
leftSet.insert(s[i]);
leftSplit[i] = leftSet.size();
}
vector<int> rightSplit(s.size());
unordered_set<char> rightSet;
for (int i = s.size() - 1; i >= 0; --i) {
rightSplit[i] = rightSet.size();
rightSet.insert(s[i]);
}
int goodSplitCnt = 0;
for (int i = 0; i + 1 < leftSplit.size(); ++i) {
if (leftSplit[i] == rightSplit[i]) {
++goodSplitCnt;
}
}
return goodSplitCnt;
}
};
```
## Time Complexity
## Space Complexity
# Miscellane
<!--
# Test Cases
```
"aacaba"
```
```
"abcd"
```
```
"aaaaa"
```
```
"acbadbaada"
```
-->