Problem:
Given a string S and a character C, return an array of integers representing the shortest distance from the character C in the string.
Example 1:
Input: S = "loveleetcode", C = 'e'
Output: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]
Note:
- S string length is in [1, 10000].
- C is a single character, and guaranteed to be in string S.
- All letters in S and C are lowercase.
思路:
Solution (C++):
vector<int> shortestToChar(string S, char C) {
int n = S.length();
vector<int> res(n, INT_MAX), index;
for (int i = 0; i < n; ++i) {
if (S[i] == C) index.push_back(i);
}
for (int i = 0; i < n; ++i) {
for (auto x : index) {
res[i] = min(res[i], abs(i-x));
}
}
return res;
}
性能:
Runtime: 16 ms Memory Usage: 6.4 MB
思路:
Solution (C++):
性能:
Runtime: ms Memory Usage: MB