Given a string s without spaces, a character ch and an integer count. Your task is to return the substring that remains after the character ch has appeared count number of times.
Note: Assume upper case and lower case alphabets are different. “”(Empty string) should be returned if it is not possible, or the remaining substring is empty.
Examples:
Input: s = "Thisisdemostring", ch = 'i', count = 3 Output: ng Explanation: The remaining substring of s after the 3rd occurrence of 'i' is "ng", hence the output is ng.
Input: s = "Thisisdemostri", ch = 'i', count = 3 Output: "" Explanation: The 3rd occurence of 'i' is at the last index. In this case the remaining substring is empty, hence we return empty string.
Input: s = "abcd", ch = 'x', count = 2 Output: "" Explanation: The character x is not present in the string, hence we return empty string.
Expected Time Complexity: O(|s|)
Expected Auxiliary Space: O(1)
Constraints:
1<= s.length()<=105
1<=count<=s.length()
s[i] is both upper case and lower case
Approach 01:
-
C++
-
Python
#include <string>
using namespace std;
class Solution {
public:
string printString(string s, char ch, int count) {
int n = s.length();
int i = 0;
for (i = 0; i < n; i++) {
if (count == 0) {
break;
}
if (s[i] == ch) {
count--;
}
}
string result = s.substr(i, n - i);
return result;
}
};
class Solution:
def printString(self, s, ch, count):
n = len(s)
i = 0
for i in range(n):
if(count == 0):
break
if(s[i] == ch):
count -= 1
i += 1
result = s[i:n]
return result
Time Complexity
- Iteration through the string:
The loop iterates through the string once, making the time complexity \( O(n) \), where
nis the length of the strings. - Substr operation:
The
substrfunction takes \( O(n) \) time as it needs to copy a portion of the string. - Overall Time Complexity:
The overall time complexity is \( O(n) \).
Space Complexity
- Auxiliary Space:
The function uses a constant amount of additional space for variables
i,n, andcount, resulting in \( O(1) \) space usage. - Result Storage:
The
substrfunction creates a new string, which can be up to the length ofs. Therefore, it uses \( O(n) \) space. - Overall Space Complexity:
The overall space complexity is \( O(n) \).