【问题标题】:Compare values calculated from two strings比较从两个字符串计算的值
【发布时间】:2020-03-20 02:13:16
【问题描述】:

两个人参加比赛。将有一个简单、困难和中等的问题。

每个难度的分数:

  • E: 1
  • 男:3
  • H: 5

用户将输入两个字符串(A 和 B),函数应该找出更大的分数或平局。

func winner(A: String, B: String) -> String {

     var sumA = 0
     var sumB = 0
     var sumhigh = 0

     var checker: Bool = false 
     for i in 0..<(A.count-1) {
         if (erica[i] == "E") {
            sumA += 1
            checker = true
         } else if (A[i] == "M"){
            sumA = sumA + 3
            checker = true
         } else if (A[i] == "H"){
            sumA += 3
            checker = true
         }
     }
     return String(sumA)
}

print(winner(A: "EHH", B: "EME"))

Desired result : A Wins // How to achieve this

【问题讨论】:

  • 欢迎来到 StackOverflow。不清楚你的问题是什么。这似乎是一个家庭作业问题和解决方案。你的解决方案有问题吗?

标签: swift


【解决方案1】:

这将比较两个字符串以确定获胜者。

func checkWinner(aString: String, bString: String) -> String {

    // Make lowercase for comparison, so that input case does not matter
    let a = aString.lowercased()
    let b = bString.lowercased()

    // Dictionary of values
    let scoreDict: [Character : Int] = ["e": 1, "m": 3, "h": 5]

    // Score variables to increment
    var aTotal = 0
    var bTotal = 0

    // Calculate scores
    for char in a {
        aTotal += scoreDict[char] ?? 0
    }
    for char in b {
        bTotal += scoreDict[char] ?? 0
    }

    // Calculate winner
    if aTotal == bTotal {
        return "It’s a draw"
    } else {
        return aTotal > bTotal ? "A wins! Score: \(aTotal)" : "B wins! Score: \(bTotal)"
    }
}

// Here is an example in which A wins
print(checkWinner(aString: "ehh", bString: "meh"))

【讨论】:

    【解决方案2】:

    检查一下

    func phraseValue(sentence: String) -> Int
    {
      var count = 0
      for letter in sentence
      {
        if letter == "E"
        {
            count += 1
        }
        else if letter == "M"
        {
            count += 3
        }
        else if letter == "H"
        {
            count += 5
        }
      }
     return count
    }
    

    最后

    func winner(A: String, B: String) -> String {
    
         var sumA = 0
         var sumB = 0
    
         sumA = valuePhrase(sentence: A)
         sumB = valuePhrase(sentence: B)
    
         if sumA == sumB
         {
            return "tie"
         }
         else if sumA > sumB
         {
            return String(sumA) + "A wins"
         }
         else
         {
            return String(sumB) + "B wins"
         }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多