JavaScript、C++とPythonで文字列を反転するためのベストプラクティス
文字列を逆にする方法は何十ものあります.どのようなベストプラクティスは、これらの文字列を反転するためですか?今日、私たちはそれらの質問に飛び込んで、3つの人気のプログラミング言語でストリングを逆にする方法を調査します:C++、JavaScriptとPython.
今日、我々はカバーします:
どのような文字列の反転ですか?
プログラミングでは、文字列は文字列です.これは、テキストではなく、数字を表現するために使用する基本的なデータ型の一つです.文字列の反転は、文字の順序を完全に反転することを意味します.言い換えると、我々は文字列を後方に読ませている.
文字列を反転すると、開発者にはいくつかの用途がありますが、実際のシナリオでは一般的ではありません.時には、正規表現を含む問題は、入力文字列が逆のときに使いやすくなります.他の場合では、文字列の反転は、文字列の終りによって検索しソートすることができます.
文字列の反転の最も一般的な使用は、コーディングのインタビューです.あなたはインタビュアーを内蔵関数を使用せずに文字列の反転でクイズを期待することができます.
コーディングの課題では、次のような質問があります.
Reverse the string.
You may need to turn the string into an array.
Your result must be a string.
どのように、あなたはストリングを逆にしますか?
どんなプログラミング言語でもストリングを逆にする多くの方法があります.選択する方法は、あなたが書いているプログラムの要件に依存します.いくつかの言語には文字列の反転のための組み込み関数やメソッドがありますが、それらに依存すべきではありません.いくつかのアプローチがあり、そのうちのいくつかは他よりも効果的です.
JavaScriptで文字列を反転する
JavaScriptの文字列を反転するには3つのステップがあります.
.split()
, .reverse()
, .join()
. 次の式で覚えておいてください..s.r.j("")
文字列を取りましょう"Hello!"
そして、この式を使ってそれを逆にしてください.ここでは、プロセスのビジュアル表現です.スプリット
JavaScriptで
split()
メソッドは文字列を部分文字列の配列に分割し、新しい配列を返します.元の配列を変更しません.var word = "Hello!";
var splitWord = word.split("");
スタンドアローン文字の次の配列を作成しました.['H', 'e', 'l', 'l', 'o', '!']
逆
私たちは文字を持っているので、我々はそれらを逆にしたい.私たちは
reverse()
このメソッドは、配列内で配列を反転します.var reverseWord = splitWord.reverse();
上のコードは以下の出力を行います.['!', 'o', 'l', 'l', 'e', 'h']
だから、今私たちの文字は逆ですが、それは文字の単一の文字列ではありません.結合
最後のステップは、それらの文字を再結合して、単一の、逆のストリングを形成することです.私たちは
join()
配列のすべての要素を1つの文字列に結合するメソッドです.joinedWords = reverseWord.join("")
最終的な出力は次のようになります.!olleH
すべてのメソッドを1行にまとめることができます.var word = "Hello";
var reverseWord = word.split("").reverse().join("");
console.log(reverseWord);
If you want to try it out yourself, check out my original publication, which has a built-in code widget.
C +の文字列を反転する
C +では、文字列を反転すると、文字の順序を変更することで反転します.C++の文字列を反転するために使用できる複数の実装があります.つのベストアプローチを見てみましょう.
1ループを使う
あなたは、中でループを書くことができます
main
文字列を反転する関数の本体.ループ本体では、組み込みを使用する必要がありますswap
関数は、要素の位置を変更します.#include <iostream>
using namespace std;
int main() {
string greeting = "Hello!";
int len = greeting.length();
int n=len-1;
for(int i=0;i<(len/2);i++){
swap(greeting[i],greeting[n]);
n = n-1;
}
cout<<greeting<<endl;
}
組み込み関数を使用できない場合がありますので、コードを少し変更する必要があります.#include <iostream>
using namespace std;
int main() {
string greeting = "Hello!";
int len = greeting.length();
int n=len-1;
for(int i=0;i<(len/2);i++){
char temp = greeting[i];
greeting[i] = greeting[n];
greeting[n] = temp;
n = n-1;
}
cout<<greeting<<endl;
}
組み込み関数の使用
C +は文字列を反転するための組み込み関数を持っています.あなたがこれを使うのを許されるならば、それは簡単に推薦されます.この関数には二つの入力があります.
#include <iostream>
//The library below must be included for the reverse function to work
#include<bits/stdc++.h>
using namespace std;
int main() {
string greeting = "Hello!";
//Note that it takes the iterators to the start and end of the string as arguments
reverse(greeting.begin(),greeting.end());
cout<<greeting<<endl;
}
学習を続ける。
Learn data structures and algorithms for coding interviews without scrubbing through videos or documentation. Educative's text-based courses are easy to skim and feature live coding environments, making learning quick and efficient.
Data Structures for Coding Interviews in Python
Also available in C++ and JavaScript
3 .独自の関数をビルドする
組み込み関数を使用できない場合は、文字列を反転するために独自に書くことができます.この関数は再帰を使います.再帰は、関数が同じ関数内で呼び出されたときです.例を見てください.
#include <iostream>
using namespace std;
void reverse_String(string& greet, int n,int i){
if(n<=i){return;}
swap(greet[i],greet[n]);
reverse_String(greet,n-1,i+1);
}
int main() {
string greeting = "Hello";
cout<<"String before reversal: "<<greeting<<endl;
reverse_String(greeting,greeting.length()-1,0);
cout<<"String after reversal: "<<greeting<<endl;
}
4 .新しい文字列を作成する
組み込み関数のないC +で文字列を逆にする最後の方法は、新しい文字列を作成することです.私たちは文字列を通して後方にループし、その要素を同じサイズの新しい文字列に格納します
push_back
メソッド.#include <iostream>
using namespace std;
int main() {
string greeting = "Hello!";
string new_greeting;
for(int n = greeting.length()-1; n >= 0; n--){
new_greeting.push_back(greeting[n]);
}
cout<<"Original string: "<< greeting << endl;
cout<<"New reversed string: "<< new_greeting << endl;
}
If you want to try these out yourself, check out my original publication, which has a built-in code widget.
Pythonで文字列を反転する
Pythonでは、文字列は文字列の順序で並びます.C +とは異なり、Pythonで文字列を反転する組み込みメソッドはありません.Pythonで文字列を反転するための最良の方法は次の三つです.
スライシング方法
スライスを使用して文字列を反転することができます.The
slice()
関数はスライスオブジェクトを返します.スライスオブジェクトは、スライスの開始と終了を指定できる文字列のスライス方法を指定するために使用します.文字列の長さから始まるスライスを作成し、インデックス0で終了しなければなりません.
stringname[stringlength::-1]
または、文字列の長さを指定せずに書くことができます.stringname[::-1]
スライスステートメントを使用して、文字列の長さから始まり、位置0で終了し、step - 1で移動します.str="Hello!" # initial string
stringlength=len(str) # calculate length of the list
slicedString=str[stringlength::-1] # slicing
print (slicedString) # print the reversed string
2ループ法
C +と同様に、ループを使用して文字列を逆にすることができます.Wはウィザーを使用することができます
for
or while
ループ.開始するには、新しい配列を作成しましょうreversedString[]
. リストの長さで初期化された変数インデックスを繰り返してリストをループします.プロセスを見てみましょう.str[index-1]
with reverseString
str = "Hello!" # initial string
reversedString=[]
index = len(str) # calculate length of string and save in index
while index > 0:
reversedString += str[ index - 1 ] # save the value of str[index-1] in reverseString
index = index - 1 # decrement index
print(reversedString) # reversed string
結合方法
このテクニックはPythonのイテレータプロトコルを利用します.それは逆の反復を使用して文字列を反転します
reversed()
関数は、文字列内の要素を逆順に循環してから使用する.join()
それらを永遠の文字列にマージする!このメソッドの構文は次のとおりです.
str="Hello!"
reversedstring=''.join(reversed(str))
完全なPythonコードでそれをチェックしてください.str = 'Hello!' #initial string
reversed=''.join(reversed(str)) # .join() method merges all of the characters resulting from the reversed iteration into a new string
print(reversed) #print the reversed string
出力:!オルレフIf you want to try these out yourself, check out my original publication, which has a built-in code widget.
次に学ぶこと
おめでとう!JavaScript、C++およびPythonで文字列を反転するための最良のプラクティスを知っています.これらのスキルは、面接のプロセスを支援するバインドされます.データ構造、アルゴリズム、およびその他の一般的なインタビュー問題の練習を続けるようにしてください.
ハッピーラーニング!
データ構造とインタビュー
7 JavaScript data structures you must know
Reference
この問題について(JavaScript、C++とPythonで文字列を反転するためのベストプラクティス), 我々は、より多くの情報をここで見つけました https://dev.to/educative/best-practices-for-reversing-a-string-in-javascript-c-python-1k16テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol