C#练习题答案: 简单有趣#47:被盗午餐【难度:2级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

简单有趣#47:被盗午餐【难度:2级】:

答案1:

using System.Collections.Generic;
using System;
using System.Text;

namespace myjinxin

{
    
    public class Kata
    {
        public string StolenLunch(string note)
        {
           List<string> list = new List<string>();
            foreach (char c in note)
            {
                int d = c;
                if (d < 107 &amp;&amp; d > 96)
                {
                    d -= 49;
                    int unicode = d;
                    char character = (char)unicode;
                    list.Add(character.ToString());
                 }
                else if (d < 58 &amp;&amp; d > 47)
                {
                    d += 49;
                    int unicode = d;
                    char character = (char)unicode;
                    list.Add(character.ToString());
                }
                else
                {
                    list.Add(c.ToString());
                }
            }
             StringBuilder builder = new StringBuilder();
            foreach (string lis in list) // Loop through all strings
            {
                builder.Append(lis).Append(""); // Append string to StringBuilder
            }
            string result = builder.ToString();
            return(result);
          
        }
    }
}

答案2:

namespace myjinxin
{
    using System;
    using System.Text.RegularExpressions;
    
    public class Kata
    {
        public string StolenLunch(string note){
          return new Regex("[a-j]|\\d").Replace(note, m => (m.Value[0] >= 48 &amp;&amp; m.Value[0] <= 57 ? (char)(m.Value[0] + 49) : (char)(m.Value[0] - 49)).ToString());
        }
    }
}

答案3:

namespace myjinxin
{
    using System;
    using System.Linq;
    
    public class Kata
    {
        public string StolenLunch(string note){
           return string.Join("",
                note.ToList().Select(c =>
                    c >= 48 &amp;&amp; c <= 57 ? (char) (c + 49) :
                    c >= 97 &amp;&amp; c <= 106 ? (char) (c - 49) : c));
        }
    }
}

答案4:

namespace myjinxin
{
    using System;
    using System.Linq;
    
    public class Kata
    {
        public string StolenLunch(string note){
          return String.Join("",note.Select(c => c >= 97 &amp;&amp; c < 107 ?  c - 49 : c >= 48 &amp;&amp; c < 58 ? c + 49 : c ).Select(c=> (char) c).ToArray());
        }
    }
}

答案5:

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

namespace myjinxin
{
    using System;
    
    public class Kata
    {
      private static readonly List<char> _values = new List<char> {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };

      public string StolenLunch(string note)
      {
        var result = new StringBuilder();
  
        foreach (var c in note) result.Append(_values.Contains(c) ? (char.IsDigit(c) ? _values[_values.IndexOf(c) + 10] : _values[_values.IndexOf(c) - 10]) : c);
  
        return result.ToString();
      }
    }
}

答案6:

using System.Text.RegularExpressions;
namespace myjinxin
{
    using System;
    
    public class Kata
    {
        public string StolenLunch(string note){
          note = Regex.Replace(note, "0", "A");
          note = Regex.Replace(note, "1", "B");
          note = Regex.Replace(note, "2", "C");
          note = Regex.Replace(note, "3", "D");
          note = Regex.Replace(note, "4", "E");
          note = Regex.Replace(note, "5", "F");
          note = Regex.Replace(note, "6", "G");
          note = Regex.Replace(note, "7", "H");
          note = Regex.Replace(note, "8", "I");
          note = Regex.Replace(note, "9", "J");
          note = Regex.Replace(note, "a", "0");
          note = Regex.Replace(note, "b", "1");
          note = Regex.Replace(note, "c", "2");
          note = Regex.Replace(note, "d", "3");
          note = Regex.Replace(note, "e", "4");
          note = Regex.Replace(note, "f", "5");
          note = Regex.Replace(note, "g", "6");
          note = Regex.Replace(note, "h", "7");
          note = Regex.Replace(note, "i", "8");
          note = Regex.Replace(note, "j", "9");
          return note.ToLower();
        }
    }
}

答案7:

namespace myjinxin
{
    using System;
    using System.Text;
    
    public class Kata
    {
        private static readonly int shift = 49;
        
        public string StolenLunch(string note)
        {
          var output = new StringBuilder(note.Length);
          foreach (char c in note)
          {
            if (c >= 'a' &amp;&amp; c <= 'j')
            {
              output.Append((char)(c - shift));
            }
            else if (c >= '0' &amp;&amp; c <= '9')
            {
              output.Append((char)(c + shift));
            }
            else
            {
              output.Append(c);
            }
          }
          return output.ToString();
        }
    }
}

答案8:

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

namespace myjinxin
{
    using System;
    
    public class Kata
    {
        public string StolenLunch(string note)
        {
         var dict = new Dictionary<char, char>() 
         {
           {'a','0'},{'b','1'},{'c','2'},{'d','3'},{'e','4'},{'f','5'},{'g','6'},{'h','7'},{'i','8'},{'j','9'}
         };
         var result = new List<char>();
         
         for(int i=0;i<note.Length;i++)
         {
            if(dict.ContainsKey(note[i]))
              result.Add(dict[note[i]]);
            else if(dict.ContainsValue(note[i]))
              result.Add(dict.FirstOrDefault(x => x.Value == note[i]).Key);
            else
              result.Add(note[i]);
         }
         return String.Join("",result);
        }
        
    }
}

答案9:

namespace myjinxin
{
  using System;
  
  public class Kata
  {
    public string StolenLunch(string note)
    {
      string decoded = "";
      
      foreach (var c in note)
      {
        switch (c) 
        {
          case 'a': decoded+="0"; break;   case '0': decoded+="a"; break;
          case 'b': decoded+="1"; break;   case '1': decoded+="b"; break;
          case 'c': decoded+="2"; break;   case '2': decoded+="c"; break;
          case 'd': decoded+="3"; break;   case '3': decoded+="d"; break;
          case 'e': decoded+="4"; break;   case '4': decoded+="e"; break;
          case 'f': decoded+="5"; break;   case '5': decoded+="f"; break;
          case 'g': decoded+="6"; break;   case '6': decoded+="g"; break;
          case 'h': decoded+="7"; break;   case '7': decoded+="h"; break;
          case 'i': decoded+="8"; break;   case '8': decoded+="i"; break;
          case 'j': decoded+="9"; break;   case '9': decoded+="j"; break;
          default:  decoded+=c.ToString(); break;
        }
      }      
      return decoded;
    }
  }
}

答案10:

namespace myjinxin
{
    using System;
    using System.Linq;
    using System.Collections.Generic;
    public class Kata
    {
        public string StolenLunch(string note){
          string s1="0123456789",s2="abcdefghij";
          return string.Join("",note.ToCharArray().Select(x=>s1.Contains(x)?s2[s1.IndexOf(x)]:s2.Contains(x)?s1[s2.IndexOf(x)]:x));
        }
    }
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值