C++程序 在字符串中替换单个字符
给定一个字符串S,字符c1和字符c2。将字符c1替换为字符c2,将字符c2替换为字符c1。
示例:
输入: grrksfoegrrks,
c1 = e, c2 = r
输出: geeksforgeeks
输入: ratul,
c1 = t, c2 = h
输出: rahul
遍历该字符串并检查c1和c2的出现。如果找到c1,则将其替换为c2,如果发现c2,则将其替换为c1。
输出
时间复杂度: O(n)
辅助空间: O(n),因为程序创建字符串s的副本。
用两个临时字符串替换字符
该方法涉及逐个字符地迭代输入字符串,并根据需要替换字符。 对于每个字符,我们检查它是否等于c1或c2,并根据需要将其替换为其他字符。 我们使用两个临时字符串来跟踪替换字符,最后使用修改后的字符串更新输入字符串。 这种方法在输入字符串上进行了单次遍历,因此具有时间复杂度为O(n)的特点,其中n是输入字符串的长度。
步骤:
- 定义一个函数 replaceChar ,它接受一个字符串S和两个字符和作为输入。
- 初始化两个临时字符串 s1和s2 为空字符串。
- 遍历输入字符串S中的字符。
- 对于每个字符 c在S中, 检查c是否等于c1或c2。
- 如果c等于 c1, 将c2附加到s1中,将c1附加到s2中。
- 如果c等于c2,则将 c1附加到s1 和 c2附加到s2。
- 如果c既不等于 c1也不等于c2, 将c附加到s1和s2中。
- 使用s1更新输入字符串 S。
输出
时间复杂度: O(n),其中n是输入字符串的长度。
辅助空间: O(n)。