C#のSubstringメソッドで文字列を回転させる方法
C#では、Substring()メソッドを活用することで、文字列の一部を切り出して結合し、文字列を回転させることができます。本記事では、具体的なコード例とともにその方法を解説します。
元となる文字列の準備
まず、回転させたい文字列を用意します。ここでは例として「welcome」という文字列を使用します。
var str = "welcome";
Substring()メソッドで文字列を回転する
文字列の一部だけを回転させたい場合は、Substring()メソッドを使います。このメソッドは、開始位置と取得する文字数を指定して部分文字列を取り出すことができます。
以下の例では、先頭の2文字を末尾に移動させて文字列を回転させています。
var res = str.Substring(1, str.Length - 1) + str.Substring(0, 2);
このコードの処理内容は以下の通りです。
str.Substring(1, str.Length - 1): 2番目の文字から残りすべての文字を取得(「elcome」)str.Substring(0, 2): 先頭から2文字を取得(「we」)- 両者を連結することで、「elcomewe」という回転後の文字列が完成します
完全なサンプルコード
以下に、上記の処理を実行する完全なプログラムを示します。
using System;
public class Program {
public static void Main() {
var str = "welcome";
Console.WriteLine("Original String = " + str);
var res = str.Substring(1, str.Length - 1) + str.Substring(0, 2);
Console.WriteLine("Rotating two characters in the String: " + res);
}
}
実行結果
このプログラムを実行すると、以下のような出力が得られます。
Original String = welcome Rotating two characters in the String: elcomewe
このように、Substring()メソッドを組み合わせることで、簡単に文字列の回転処理を実装できます。回転させる文字数を変更したい場合は、Substring()の引数を調整するだけで対応可能です。
-
Pythonで文字列が回転で一致するか判定する方法
文字列の回転マッチング問題とは2つの文字列 A と B が与えられたとき、文字列 A を回転させて、いずれかの時点で B と一致するかどうかを判定する問題を考えてみましょう。一致する回転位置が存在すれば True を返し、存在しなければ False を返します。例えば、A = abcde、B = cdeab の場合、A を2文字分回転させると cdeab になるため、答えは True となります。一方、B = acdeb のような場合はどれだけ回転しても一致しないため、False が返されます。解法のアプローチこの問題は「連結テクニック」を使うと効率的に解けます。基本的な考え方は以下の通りです
-
Pythonの文字列スライスで文字列を回転させる方法
文字列が与えられたとき、その文字列を2つの方向にスライスして回転させるのが本記事の目的です。1つは時計回り(右回転)、もう1つは反時計回り(左回転)です。1. 与えられた文字列を d 要素分だけ左(反時計回り)に回転させます(d <= n)。2. 与えられた文字列を d 要素分だけ右(時計回り)に回転させます(d <= n)。実行例Input: string = pythonprogram d = 2 Output: Left Rotation: thonprogrampy Right Rotation: ampythonprogrアルゴリズムStep 1: 文字列を入力する。 S