Computer >> Máy Tính >  >> Lập trình >> C ++

Chuyển đổi chuỗi đã cho để nó chỉ chứa các ký tự riêng biệt trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để chuyển đổi chuỗi đã cho để nó chỉ chứa các ký tự riêng biệt.

Đối với điều này, chúng tôi sẽ được cung cấp một chuỗi. Nhiệm vụ của chúng ta là duyệt qua chuỗi và thay thế tất cả các ký tự lặp lại bằng bất kỳ ký tự ngẫu nhiên nào chưa có trong chuỗi.

Ví dụ

#include<bits/stdc++.h>
using namespace std;
//collecting the distinct characters
//in the string
int calculate_zero(int i, int occurrences[]){
   while (i < 26) {
      //if it is present only once
      if (occurrences[i] == 0)
         return i;
      i++;
   }
   //if all are doubles or more
   return -1;
}
//printing the modified string
string print_modified(string str) {
   int n = str.length();
   //if conversion
   //not possible
   if (n > 26)
      return "-1";
   string ch = str;
   int i, occurrences[26] = {0};
   //counting the occurrences
   for (i = 0; i < n; i++)
      occurrences[ch[i] - 'a']++;
   int index = calculate_zero(0, occurrences);
   for (i = 0; i < n; i++) {
      //replacing the character
      if (occurrences[ch[i] - 'a'] > 1) {
         occurrences[ch[i] - 'a']--;
         ch[i] = (char)('a' + index);
         occurrences[index] = 1;
         //moving to the next character
         index = calculate_zero(index + 1, occurrences);
      }
   }
   cout << ch << endl;
}
int main() {
   string str = "tutorialspoint";
   print_modified(str);
}

Đầu ra

bucdrealspoint