C#练习题答案: 字值【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

字值【难度:1级】:

答案1:

using System;
using System.Linq;

public class Kata
{
  public static int[] WordValue(string[] a) => a.Select((s, i) => (i + 1) * s.ToCharArray().Aggregate(0, (t, c) => t + 1 + "abcdefghijklmnopqrstuvwxyz".IndexOf(c))).ToArray();
}

答案2:

Aggregate(0, (t, c) => t + 1 + "abcdefghijklmnopqrstuvwxyz".IndexOf(c))

答案3:

using System.Linq;

public class Kata
{
  public static int[] WordValue(string[] a)
  {
    return a.Select((w, i) => w.Where(c => char.IsLetter(c)).Sum(c => c - 'a' + 1) * (i + 1)).ToArray();
  }
}

答案4:

using System.Linq;

public class Kata
{
    public static int[] WordValue(string[] strs)
    {
        return strs.Select((x, i) => x.Replace(" ", "").Sum(y => (y - 96) * (i + 1))).ToArray();
    }
}

答案5:

using System.Linq;

public class Kata
{
  public static int[] WordValue(string[] a) =>
    a.Select((s, i) => (i + 1) * s.Sum(c => c == ' ' ? 0 : c - 'a' + 1)).ToArray();
}

答案6:

using System.Linq;
using System.Text;
public class Kata
{
  public static int[] WordValue(string[] a)
  {
    int[] output = new int[a.Length];
    for(int i = 0; i < a.Length; i++){
      byte[] asciiBytes = Encoding.ASCII.GetBytes(a[i]);
      int sum = 0;
      for(int j = 0; j < asciiBytes.Length; j++){
        if(asciiBytes[j] > 96) sum += asciiBytes[j] - 96;
        
      }
      output[i] = (i + 1) * sum;
    }
    return output;
  }
}

答案7:

using System.Linq;

public class Kata
{
  public static int[] WordValue(string[] a) => a.Select((s, i) => (i + 1) * s.Replace(" ", "").Sum(c => c - 96)).ToArray();
}

答案8:

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

public class Kata
{
  public static int[] WordValue(string[] a)
  {
      return a.Select((words, index) => words.Split(' ')
                                      .Sum(word => word.Sum(x => (int)x - 96)) 
                                      * (index + 1))
                                      .ToArray();      
  }
}

答案9:

using System.Linq;
using System.Text.RegularExpressions;
public class Kata
{
  public static int[] WordValue(string[] a)
    => a.Select((x, i) => Regex.Replace(x, @"[^A-z]", "").ToCharArray().Sum(y => y - 96) * (i+1)).ToArray();
}

答案10:

using System.Linq;
public class Kata
{
  public static int[] WordValue(string[] a)
  {
    return a.Select((x, i) => x.Where(e => char.IsLetter(e)).Sum(d => char.ToUpper(d) - 64) * (i + 1)).ToArray();
  }
}

答案11:

using System.Linq;
public class Kata
{
  public static int[] WordValue(string[] a)
  {
    var arr = new int[a.Length];
    for (int i = 0; i < a.Length; i++)
    {arr[i] = a[i].Replace(" ", "").Sum(e => char.ToUpper(e) - 64) * (i+1);}
    return arr;
  }
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值