C++程序 在字符串中替换单个字符

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。

// C ++程序替换c1为c2
//和c2互换
#include <bits/stdc++.h>
using namespace std;
string replace(string s,
               char c1, char c2)
{
    int l = s.length();
 
    // 循环遍历字符串
    for (int i = 0; i < l; i++)
    {
        // 检查c1并替换
        if (s[i] == c1)
            s[i] = c2;
 
        // 检查c2并替换
        else if (s[i] == c2)
            s[i] = c1;
    }
    return s;
}
 
// 驱动程序
int main()
{
    string s = "grrksfoegrrks";
    char c1 = 'e', c2 = 'r';
    cout << replace(s, c1, c2);
    return 0;
}  

输出

geeksforgeeks

时间复杂度: O(n)

辅助空间: O(n),因为程序创建字符串s的副本。

用两个临时字符串替换字符

该方法涉及逐个字符地迭代输入字符串,并根据需要替换字符。 对于每个字符,我们检查它是否等于c1或c2,并根据需要将其替换为其他字符。 我们使用两个临时字符串来跟踪替换字符,最后使用修改后的字符串更新输入字符串。 这种方法在输入字符串上进行了单次遍历,因此具有时间复杂度为O(n)的特点,其中n是输入字符串的长度。

步骤:

  1. 定义一个函数 replaceChar ,它接受一个字符串S和两个字符和作为输入。
  2. 初始化两个临时字符串 s1和s2 为空字符串。
  3. 遍历输入字符串S中的字符。
  4. 对于每个字符 c在S中, 检查c是否等于c1或c2。
  5. 如果c等于 c1, 将c2附加到s1中,将c1附加到s2中。
  6. 如果c等于c2,则将 c1附加到s1c2附加到s2。
  7. 如果c既不等于 c1也不等于c2, 将c附加到s1和s2中。
  8. 使用s1更新输入字符串 S。
#include <iostream>
#include <string>
 
using namespace std;
 
void replaceChar(string& S, char c1, char c2) {
    string s1, s2;
    for (char c : S) {
        if (c == c1) {
            s1 += c2;
            s2 += c1;
        } else if (c == c2) {
            s1 += c1;
            s2 += c2;
        } else {
            s1 += c;
            s2 += c;
        }
    }
    S = s1;
}
 
int main() {
    string S = "Omkhaz";
    char c1 = 'z', c2 = 'r';
 
    // Replace characters in string
    replaceChar(S, c1, c2);
 
    // Print modified string
    cout << "Modified string: " << S << endl;
 
    return 0;
}  

输出

Modified string: Omkhar

时间复杂度: O(n),其中n是输入字符串的长度。

辅助空间: O(n)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例