見出し画像

部分文字列の問題 C#

問題

文字 a と文字列 S が与えられるので、 S に a が含まれているかどうか判定し、含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。

入力

a
S

1 行目に文字 a が、 2 行目に文字列 S が与えられます。

出力

S に a が含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。

なんか解けそうで全く解けなかったので、調べました。

using System;

class Program
{
    static void Main()
    {
        // 自分の得意な言語で
        // Let's チャレンジ!!
        var a = Console.ReadLine();
        string S = Console.ReadLine();
        
        
        if (S.Contains(a)) 
        {
            Console.WriteLine("YES");
        }
        else
        {
            Console.WriteLine("NO");
        }
    }
}

世の中には便利なメソッドがたくさんあるようで、、、。
(S.Contains(a))
これを使えば文字の検索ができるようです。使い方は
(文字列.Conrains(調べたい文字or文字列)
だそうです。
今回変数Sには文字列が、変数aには調べたい文字が入っています。
ぐぅ、、、こんなの動画でやってないお;;
プログラミングは調べる能力もかなり必要だということですな。

一応、paiza c#入門編の動画のみでも解ける方法があるっぽいです(厳密には動画のみの知識では無理かも)。ほかの言語の回答を参考に調べながら出した答えです。

using System;

class Program
{
    static void Main()
    {
        // 自分の得意な言語で
        // Let's チャレンジ!!
        string inputA = Console.ReadLine();
        char a = inputA[0];  // 最初の1文字を取得
        // 残りの文字列 S の入力を取得
        string S = Console.ReadLine();
        
        bool flag =false;
        
        for(int i =0;i<S.Length;i++){
           
             if(a==S[i])
             {
                 flag=true;
            
             }
              
        }
        
            if(flag)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }
        
    }
}

単体の文字と文字列の比較が中々できずに断念したんですが、
string inputA = Console.ReadLine();
char a = inputA[0];
 
こんな感じにstring型で出力した後にchar型に変換すればいけたのは分かりませんでした。

Python3の解答と比較すると、C#ってなかなか癖が強い言語なのですな。
でもゲーム制作にはc#の知識が必要なのでめげずに頑張ります!



この記事が気に入ったらサポートをしてみませんか?