ホームページ  >  記事  >  バックエンド開発  >  文字列を abcd..z を部分列として持つ形式に変換します。

文字列を abcd..z を部分列として持つ形式に変換します。

WBOY
WBOY転載
2023-09-01 14:17:061126ブラウズ

文字列を abcd..z を部分列として持つ形式に変換します。

文字列変換 (文字列変換とも呼ばれる) は、プロセス全体の実行後に結果を出力配列に格納する C の操作です。 C では、C 環境のディレクトリに「transform()」という関数があり、これを使用して文字列を新しい文字列に変換できます。

変換関数には 2 つの形式があります −

  • 単項演算

    • 演算は入力配列の各要素に適用されます。

    • 操作が完了すると、結果は出力配列に保存されます。

  • 二項演算

  • この操作は、特定の配列の各要素に適用されます。

  • 最初の入力要素と 2 番目の対応する入力要素が操作に参加します。

  • 出力データは出力配列に保存されます。

サブシーケンス文字列は、入力文字列に対してさまざまな操作 (例: 削除) を実行することによって生成されるまったく新しい文字列です。後続の文字列の場合、操作は残りの文字に影響を与えることなく実行されます。

文字列変換の場合、入力には長さ n 1 の操作文字列が含まれます。オリジナルキャラクターはa~zまでのシリーズに属します。印刷文字列の長さは、ここでは出力文字列である n として扱われます。

この記事では、C 環境で文字列を変換し、サブシーケンスとして abcd….z を含める方法を学びます。

再帰アルゴリズムにより後続の文字列が生成されます

再帰的なアプローチを使用すると、後続の文字列に対して次のようなアルゴリズムが可能になります。これは特定の文字列で、T は操作の完了にかかる時間です。

  • ステップ 1 - 出現回数を数えます。

  • ステップ 2 - i = 長さ (s) かつ j = 長さ (T) の場合。

  • 3 番目のステップ - 1 を返します。

  • ステップ 4 - 終了。

  • ステップ 5 - i = 長さ(S) の場合。

  • ステップ 6 - 次に、0 を返します。

  • ステップ 7 - 終了。

  • ステップ 8 -カウント

  • ステップ 9 - j

  • ステップ 10 - カウント

  • ステップ 11 - 終了。

  • ステップ 12 - カウント

  • ステップ 13 - カウントを返します。

  • ステップ 14 - 終了。

後続の配列の構文

リーリー

ここでは、後続の配列の基本的な機能構文を作成します。 2 つのシーケンスがある場合、出力を取得するには次の手順に従う必要があります。

次の方法

  • 方法 1 - C を使用して文字列を変換する

  • C

  • を使用した文字列の単項演算の方法 2
  • C を使用して文字列に対してバイナリ演算を実行する方法 3

  • C を使用して、後続の考えられるすべての文字列を出力します

  • C を使用して文字列を部分列として abcd….z を持つように変換する方法 5

Cを使用して文字列を変換する

この C コードでは、新しい文字列を作成し、入力文字列からすべての母音を削除します。これらの母音の代わりに # が追加されます。

例 1

リーリー ###出力### リーリー

C を使用して文字列に対して単項演算を実行する

この特定のコードでは、入力配列に対して単項演算を実行する方法を示します。この関数は、単一入力の開始位置と終了位置へのポインターを受け入れます。そして出力配列の先頭で動作します。

例 2

の中国語訳は次のとおりです:

例 2

リーリー ###出力### リーリー

C を使用して文字列に対してバイナリ演算を実行する

この特定のコードでは、入力配列に対してバイナリ演算を実行する方法を示します。関数transform()は、開始点と最初の入力配列の間にポインタを追加します。バイナリ演算は常に 2 つの入力データ セットに対して実行されることに注意してください。

例 3

の中国語訳は次のとおりです:

例 3

リーリー ###出力### リーリー

C を使用して後続のすべての文字列を出力します

選択と非選択の概念を適用して、特定の配列のすべてのサブシーケンスを検索します。このプロセス中に、要素の順序を変更せずに一部の文字が削除される場合があります。ここで、このプロセスの時間計算量は O(2^n)、空間計算量は O(n) です。

例 4

リーリー ###出力### リーリー

文字列を部分列として abcd...z を持つように変換します

これは、文字列を部分列として abcd...z を持つ形式に変換するための具体的な手順です。

初期化文字。

長さが 26 未満の場合は、false を返します。

  • ループを 0 から s.size() - 1 まで繰り返します。

  • 文字が z に到達すると、ループから抜け出します。

  • 現在の文字が s より小さいか、文字と等しい場合。

  • 現在の文字の増分を 1 に置き換えます。

  • 文字が z 以下の場合は、false を返します。

  • それ以外の場合は true を返します。

在这个过程中,时间复杂度为O(n),辅助空间为O(1)。这里,n是特定字符串的长度。

Example 5

的中文翻译为:

示例5

#include <bits/stdc++.h>
using namespace std;
bool transformString(string& s) {
   char ch = 'a';
   if (s.size() < 26)
   return false;
   for (int i = 0; i < s.size(); i++) {
      if (int(ch) > int('z'))
      break;
      if (s[i] <= ch) {
         s[i] = ch;
         ch = char(int(ch) + 1);
      }
   }
   if (ch <= 'z')
   return false;
   return true;
}
int main() {
   string str = "aaaaaaaaaaaaaaaaaaaaaaaaaaa";
   if (transformString(str))
   cout << str << endl;
   else
   cout << "Not Possible" << endl;
   return 0;
}

输出

abcdefghijklmnopqrstuvwxyza

结论

在本文中,我们学习了使用C++环境进行字符串转换及其不同形式。通过遵循特定的算法和语法,我们检查和构建了一些不同的C++代码,并了解了如何转换字符串,使其具有abcd...z作为子序列。

以上が文字列を abcd..z を部分列として持つ形式に変換します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。