透過新增另一個給定字串中相同索引字元的整數數值來修改字串的字元


在這個問題中,我們需要透過將 num 字串中數字字元的值新增到 str 字串字元的 ASCII 值來修改給定的字串。

為了解決這個問題,我們可以將數字字元轉換為實際數字,並將其新增到字元的 ASCII 值。如果 ASCII 值大於 122,我們從 97 重新開始。

問題陳述 – 我們得到了兩個長度相等為 N 的字串。第一個字串,名為 str,包含小寫字母字元,第二個字串,名為 num,僅包含數字。我們需要在將 num 字串中數字字元的整數數值新增到 str 字串字元的 ASCII 值後生成一個新字串。此外,我們需要進行迴圈增量。

示例

輸入– str = "abcd", num = "4444"

輸出– ‘efgh’

解釋

  • ‘a’ 的 ASCII 值是 97。因此,97 + 4 等於 101,相當於 ‘e’ 的 ASCII 值。

  • ‘b’ 的 ASCII 值是 98。因此,98 + 4 等於 102,相當於 ‘f’ 的 ASCII 值。

  • ‘c’ 的 ASCII 值是 99。因此,99 + 4 等於 103,相當於 ‘g’ 的 ASCII 值。

  • ‘d’ 的 ASCII 值是 100。因此,100 + 4 等於 104,相當於 ‘h’ 的 ASCII 值。

輸入– str = "Tutorialspoint", num = "26547658932432"

輸出– ‘vaysyoftbsqmqv’

解釋– 我們將 num 字串中數字字元的值新增到 str 字串字元的 ASCII 值,並修改了字串。

輸入– str = "xyz", num = "321"

輸出– ‘aaa’

解釋

  • x’ + 3 = ‘a’

  • ‘y’ + 2 = ‘a’

  • ‘z’ + 1 = ‘a’

方法 1

在這種方法中,我們將遍歷字串。之後,我們將從 ‘num’ 字串的第 i 個索引處提取數字值,並將其新增到 str 中第 i 個索引處字元的 ASCII 值。

此外,我們將進行迴圈求和,以便獲得有效的字母字元。

演算法

  • 使用迴圈遍歷字串。

  • 從 num 字串中訪問第 i 個字元,並從中減去 ‘0’ 以將字元轉換為數字。

  • 訪問 str 字串中第 i 個索引處的字元,並將其轉換為數字以獲取 ASCII 值。之後,新增數字值並將其儲存在 ‘updated’ 變數中。

  • 如果 ‘update’ 大於 122,則減去 26 以獲得有效的字母字元。這裡,122 是 ‘z’ 的 ASCII 碼。

  • 使用 char() 建構函式將 ‘updated’ 轉換為字元,並修改 str 字串中第 i 個索引的值。

  • 返回 ‘str’ 字串。

示例

#include <bits/stdc++.h>
using namespace std;

// function to change the string by adding digits in the ASCII value of characters
string addASCII(string str, string num) {
   // Traverse the string
   for (int i = 0; i < str.size(); i++) {
      // get the integer value of the character
      int digit = int(num[i]) - '0';
      // get the updated ASCII value of the character
      int updated = int(str[i]) + digit;
      // If the update exceeds 122
      if (updated > 122)
          updated -= 26;
      // Replace the character
      str[i] = char(updated);
   }
   // return string
   return str;
}
int main() {
   string str = "Tutorialspoint", num = "26547658932432";
   cout << "The given string after modifying is " << addASCII(str, num);
   return 0;
}

輸出

The given string after modifying is Vaysyoftbsqmqv

時間複雜度– O(N),因為我們迭代了字串。

空間複雜度 – O(1),因為我們修改了相同的字串。

在本教程中,我們學習瞭如何透過將數字值新增到字元的 ASCII 值來修改字串的每個字元。程式設計師還可以嘗試透過從每個字元的 ASCII 值中減去數字值來修改字串。

更新於: 2023年8月18日

131 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告