C++を使用して配列から先行ゼロを削除する
配列が提供され、指定された配列から先行ゼロを削除してから、配列を出力する必要があります。
Input : arr[] = {0, 0, 0, 1, 2, 3} Output : 1 2 3 Input : arr[] = {0, 0, 0, 1, 0, 2, 3} Output : 1 0 2 3
特定の問題で、前の配列の先行ゼロを含まない新しい配列を作成できます。
解決策を見つけるためのアプローチ
このアプローチでは、配列を調べてすべての数値を挿入しますが、先行ゼロは挿入しません。
例
#include <iostream> using namespace std; int main() { int arr[] = {0, 0, 0, 1, 2, 0, 4}; int n = sizeof(arr) / sizeof(int); // size of given array. int last = -1; for(int i = 0; i < n; i++) { // finding the first non zero element if(arr[i] != 0) { last = i; break; } } if(last == -1) cout << "Empty\n"; else { int b[n - last]; // the new array. for(int i = last; i < n; i++) // inserting the elements in the new array b[i-last] = arr[i]; for(int i = 0; i < n-last; i++) // printing the array cout << b[i] << " "; } }
出力
1 2 0 4
上記のコードの説明
与えられたプログラムでは、最初に配列arrをトラバースし、最初の非ゼロ要素のインデックスを見つけます。これは、トラバーサル後にlastが-1の場合、lastという変数に格納されます。つまり、配列全体がで構成されます。ゼロなので、「空」を出力します。
これで、最初の非ゼロ要素のインデックスを取得したので、新しい配列のサイズ、つまり(n-last)を決定できます。次に、最後からn未満までforループを実行します。これらの要素を新しい配列に挿入し、新しい配列を出力します。
結論
この記事では、配列から先行ゼロを削除する問題を解決します。また、この問題のC ++プログラムと、解決した完全なアプローチについても学びました。同じプログラムを、C、java、python、その他の言語などの他の言語で作成できます。この記事がお役に立てば幸いです。
-
C#の文字列から先行ゼロを削除する
次の文字列が先行ゼロであるとしましょう。 String str ="000234"; TrimStart()メソッドを使用し、0を設定して削除します。 TrimStart(new Char[] { '0' } ) 以下は、先行ゼロを削除するための完全なコードです。 例 using System; class Program { static void Main() { String str ="000234".TrimStart(new Char[] { '
-
IPアドレスから先行ゼロを削除するPythonプログラム
このチュートリアルでは、IPアドレスから先行ゼロを削除するプログラムを作成します。正確に何であるかを見てみましょう。 IPアドレスが255.001.040.001であるとします。 、次にそれを 255.1.40.1に変換する必要があります 。以下の手順に従ってプログラムを作成してください。 IPアドレスを初期化します。 IPアドレスをで分割します。分割関数の使用 IPアドレスの各部分をintに変換します これにより、先行ゼロが削除されます。 各部分をstrに変換して、すべての部分を結合します。 結果が最終出力です。 例 ## initializing IP address ip_addre