空の文字列を取得するために削除される文字インデックスの合計など、文字列操作に関連する概念は、プログラミングの課題や競技会でよく使用されます。次に、削除された文字インデックスの合計を使用して結果が計算されます。
文字のインデックス合計を削除して空の文字列を取得することは、プログラミングのさまざまな困難や課題を解決するために使用できる文字列操作の実用的なアイデアです。
空の文字列を生成するために削除される文字インデックスの総数を見つけるには、まず問題文と指定された基準を理解する必要があります。
文字列 S が与えられた場合、目標は、文字列を空のままにして S から削除できる文字の合計数を決定することです。たとえば、S = "code" の場合、位置 0、4、5、および 6 の文字を削除して空の文字列を取得できます。これらの指数を合計すると、0 4 5 6 = 15 になります。
ただし、スタックの使用は、この問題を解決するための一般的な戦略です。文字列 S をループし、各反復で各文字を削除できるかどうかを判断できます。インデックスを削除できる場合は、スタックに追加できます。削除できない場合は、スタックの一番上のキャラクターを既存のキャラクターと一緒に削除できるかどうかを確認します。削除できる場合は削除し、そのインデックスを現在の文字のインデックスに追加します。このプロセスは、文字列内のすべての文字が処理されるまで繰り返すことができます。
次の疑似コードは、この戦略を示しています -
リーリーこの疑似コードでは、sum 変数と空のスタックは両方とも 0 に初期化されます。次に、for ループを使用して文字列 S を繰り返し処理します。各文字を確認して、一番上の文字と一緒に削除できるかどうかを確認します。 stack (スタックが空でない場合)。可能であれば、キャラクターはスタックから削除され、そのインデックスとゲーム内のキャラクターの合計が sum 変数に追加されます。この場合、インデックスをスタックに追加し、削除しようとします。次に、sum 変数を返します。
このメソッドの時間計算量と空間計算量は両方とも O(n) です。ここで、n は文字列 S の長さ、n は S から削除できる最大文字数です。
###文法###イラスト
- この質問の詳細は明示されていないため、これらの条件が想定されます。 リーリー ###アルゴリズム### 定義された条件下で空の文字列を作成することによって削除された文字インデックスの総数をカウントするための C アルゴリズム -
ステップ 2
ステップ 3
ステップ 4
ステップ 5
ステップ 6
ステップ 7
ステップ 8
ステップ 9
従うべき方法
s[i] と s[j] が等しい場合、両方のインデックスを文字列の中心に移動します。
s[i] が s[j] より小さい場合、インデックス j の文字を削除し、インデックスの合計をインデックス i だけ増やします。
s[i] が s[j] より大きい場合、インデックス i の文字を削除し、インデックス合計をインデックス j 1 だけ増やします。
すべての文字が削除された後、インデックスの合計をコンソールに報告します。
#include <iostream> #include <string> using namespace std; int main() { string s = "abacbdc"; int sum = 0; int i = 0; int j = s.length() - 1; while (i < j) { if (s[i] == s[j]) { i++; j--; } else if (s[i] < s[j]) { sum += i + 1; i++; s.erase(j, 1); j--; } else { sum += j + 1; j--; s.erase(i, 1); i++; } } cout << "Sum of indices of characters removed: " << sum << endl; return 0; }
Sum of indices of characters removed: 6
str 字符串和字符是 sum_of_indices 函数的输入。然后,迭代字符串,确定每个字符是否等于 c。如果是这样,函数会递减循环索引以考虑删除的字符,并将字符的索引添加到运行总数中,然后使用擦除技术从字符串中删除字符。然后该函数返回已消除的字符索引的总数。
示例字符串 str 和字符 c 在 main 函数中定义,这两个输入用于调用 sum_of_indices 函数。总数作为结果打印到控制台。
#include <iostream> #include <string> using namespace std; int sum_of_indices(string str, char c) { int sum = 0; for (int i = 0; i < str.length(); i++) { if (str[i] == c) { sum += i; str.erase(i, 1); i--; } } return sum; } int main() { string str = "abcbcdc"; char c = 'c'; int sum = sum_of_indices(str, c); cout << "Sum of indices of characters removed to obtain empty string: " << sum << endl; return 0; }
Sum of indices of characters removed to obtain empty string: 9
需要操作字符串及其索引来解决根据提供的条件计算消除的字符索引之和以获得空字符串的问题。为了解决这个问题,循环遍历字符串,如果两个连续字符相同,则在更新索引之前删除它们。一旦我们有了一个空字符串,我们就可以添加被删除的字符的索引以产生一个空字符串。
有许多解决方案需要解决,例如利用堆栈或队列来跟踪要删除的字符,或者使用递归来迭代地从字符串中删除字符。
以上が指定された条件に従って次を中国語に翻訳します。指定された条件に従って文字を削除し、空の文字列のインデックスの合計を取得します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。