C#练习题答案: 算上笑脸!【难度:2级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

算上笑脸!【难度:2级】:

答案1:

using System.Text.RegularExpressions;
using System.Linq;

public static class Kata
{
  public static int CountSmileys(string[] smileys) 
  {
     return smileys.Count(s => Regex.IsMatch(s, @"^[:;]{1}[~-]{0,1}[\)D]{1}$"));
  }
}

答案2:

using System.Text.RegularExpressions;

public static class Kata
{
  public static int CountSmileys(string[] smileys) 
  => Regex.Matches(string.Join(" ",smileys), "([:;][-~]?)[)D]").Count;
}

答案3:

using System.Collections.Generic;
using System.Linq;
using System;

public static class Kata
{
  public static int CountSmileys(string[] smileys)
        {
            int c = 0;
            List<string> smileysList = smileys.ToList<string>();
            List<char> eyes = new List<char> { ':', ';' };
            List<char> nose = new List<char> { '-', '~'};
            List<char> mouth = new List<char> { ')', 'D' };

            foreach(string str in smileys)
            {
                if(str.Length==2 || str.Length == 3)
                {
                    if (eyes.Exists(symbol => symbol.Equals(str.First<char>())))
                    {
                        if (mouth.Exists((symbol => symbol.Equals(str.Last<char>()))))
                        {
                            if(nose.Exists(symbol=> symbol.Equals(str.ElementAt<char>(1))))
                                c++;

                            else if (str.Length == 2)
                                c++;
                        } 
                    }
                }  
            }
            return c;
        }
}

答案4:

public static class Kata
{
  public static int CountSmileys(string[] s) 
  {
    int num = 0;
    for(int i=0; i<s.Length; ++i) {
      if(s[i].Length == 2) {
        if(s[i][0] == ':' || s[i][0] == ';')
          if(s[i][1] == ')' || s[i][1] == 'D')
            num = num + 1;
      } else if(s[i].Length == 3) {
        if(s[i][0] == ':' || s[i][0] == ';') 
          if(s[i][1] == '-' || s[i][1] == '~')
            if(s[i][2] == ')' || s[i][2] == 'D')
              num = num + 1;
      }
    }
    // С# AUTHORS PLEASE DDDIIIIEEEEE!!!!!!!!!!!!!!!!!!!!!!!!!!!11111111111111
    return num;
  }
}

答案5:

using System.Linq;
using System.Text.RegularExpressions;

public static class Kata
{
  private static readonly Regex SmileyRegex = new Regex(@"^[:;][-~]?[)D]$");
  
  public static int CountSmileys(string[] smileys) 
  {
    return smileys.Count(SmileyRegex.IsMatch);
  }
}

答案6:

using System.Text.RegularExpressions;
using System.Linq;

public static class Kata
{
  private static Regex regex = new Regex(@"^[:;][-~]?[)D]$");

  private static int IsSmiley(string smiley) =>
    regex.Match(smiley).Success ? 1 : 0;

  public static int CountSmileys(string[] smileys) =>
    smileys.Sum(IsSmiley);
}

答案7:

using System;
using System.Text.RegularExpressions;
using System.Collections.Generic;
public static class Kata
{
   public static int CountSmileys(string[] smileys)
        {
            Regex r = new Regex("[:;][-~]?[)D]");
            int Count = 0;
            foreach (string smile in smileys)
            {
                if (r.IsMatch(smile))
                {
                    ++Count;
                }
            }
            return Count;
        }
}

答案8:

using System;

public static class Kata
{
  public static int CountSmileys(string[] smileys) 
  {
    int count = 0;
    foreach (string smiley in smileys)
    {
        if(((smiley.Contains(':') || smiley.Contains(';'))) &amp;&amp; ((smiley.Contains(')') || smiley.Contains('D'))) &amp;&amp; !smiley.Contains(' '))
                count++;
    }
    return count;
  }
}

答案9:

using System.Linq;

public static class Kata
{
  public static int CountSmileys(string[] smileys) 
  {
  
        // Probablu not a recommended approach.
        // Best to instead use regular expresions
  
        string[] validSmileys =
        {
            ":)",
            ";)",
            ":D",
            ";D",
            ":-)",
            ":-D",
            ":~)",
            ":~D",
            ";-)",
            ";~)",
            ";-D",
            ";~D",
        };

        return smileys.Count(s => validSmileys.Contains(s));
  }
}

答案10:

using System.Linq;
using System.Text.RegularExpressions;

public static class Kata
{
  public static int CountSmileys(string[] smileys) 
  {
     return smileys.Count(x=>Regex.IsMatch(x,@"^[:;][-~]?[)D]$"));
  }
}

答案11:

using System.Linq;
using System.Text.RegularExpressions;
public static class Kata
{
  public static int CountSmileys(string[] smileys) 
  {
     return smileys.Count(x => Regex.IsMatch(x, @"^[;:][-~]?[)D]$"));
  }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值