【问题标题】:How can I change a string only four times depending on some conditions?如何根据某些条件仅更改字符串四次?
【发布时间】:2023-03-18 10:57:01
【问题描述】:

改写:我有一个字符串“1234”和四个整数:dif1、dif2、dif3 和 dif4。我想要实现的是根据下面的代码将字符串中的字符更改为其他字符:

    var string = "1234"  

    var dif1: Int = it1 - it5
    var dif2: Int = it2 - it6
    var dif3: Int = it3 - it7
    var dif4: Int = it4 - it8

    // Negative values are not allowed
    if dif1 < 0 {
        dif1 = -dif1;
    }
    if dif2 < 0 {
        dif2 = -dif2;
    }
    if dif3 < 0 {
        dif3 = -dif3;
    }
    if dif4 < 0 {
        dif4 = -dif4;
    }
    var change = 0
    var minimum = min(dif1,dif2,dif3,dif4)

    // The first change that can happen for first character
    if dif1 < 13 && dif1 == minimum {
        change = 1
        // change the first character in string with another one depending on case!
    }
    else if dif2 < 13 && dif2 == minimum {
        change = 1
        ...
    }
    else if dif3 < 13 && dif3 == minimum {
        change = 1
        ...
    }
    else if dif4 < 13 && dif4 == minimum {
        change = 1
        ...
    }

    // The second change
    if (dif1 + dif2) < 13 {
        // If we have one change replace the second character
        if (change == 1) {
        ...
        }
        // else replace the first and record this as one change
        change = 2;
    }
    else if ((dif2 + dif3) < 13) {
        if (change == 1) {
        }
        change = 2;
    }
    else if ((dif3 + dif4) < 13) {
        if (change == 1) {
        }
        change = 2;
    }
    else if ((dif1 + dif4) < 13) {
        if (change == 1) {
        }
        change = 2;
    }

    // The third change
    if ((dif1 + dif2 + dif3) < 13) {
        // If we have the first change replace the second character
        if (change == 1) {
        }
        // If we also have the second change replace the third character
        else if (change == 2) {
        }
        // Else replace the first character and record as one change
        change = 3;
    }
    else if ((dif2 + dif3 + dif4) < 13) {
        if (change == 1) {
        }
        else if (change == 2) {
        }
        change = 3;
    }
    else if ((dif3 + dif4 + dif1) < 13) {
        if (change == 1) {
        }
        else if (change == 2) {
        }
        change = 3;
    }
    else if ((dif4 + dif1 + dif2) < 13) {
        if (change == 1) {
        }
        else if (change == 2) {
        }
        change = 3;
    }

    if dif1 < 13 && dif1 != minimum {
        if (change == 1) {
        }
        else if (change == 2) {
        }
        else if (change == 3) {
        }
        change = 4;
        }
    else if dif2 < 13 && dif2 != minimum {
        if (change == 1) {
        }
        else if (change == 2) {
        }
        else if (change == 3) {
        }
        change = 4;
        }
    else if dif3 < 13 && dif3 != minimum {
        if (change == 1) {
        }
        else if (change == 2) {
        }
        else if (change == 3) {
        }
        change = 4;
        }
    else if dif4 < 13 && dif4 != minimum {
        if (change == 1) {
        }
        else if (change == 2) {
        }
        else if (change == 3) {
        }
        change = 4;
        }

那么我怎样才能根据上面的代码只修改字符串四次呢?

【问题讨论】:

  • 你想在这里解决什么问题?
  • 你的描述没有多大意义。我们无法确定您要做什么,而您的代码并没有使事情变得更清晰。如果您需要帮助,您必须清楚地说明您正在尝试做什么。
  • 只使用一个计数器 -> 你所做的每一次修改都可以设置一个这样的计数器:counter++;如果计数器为 3,则只需中断/返回操作
  • 我希望这能解释得更好!

标签: ios string swift min difference


【解决方案1】:

奇怪,您在这里尝试做什么,但请检查下面的比较功能与您需要的示例。 在游乐场

var dif1: Float = 52
var dif2: Float = 41.24
var dif3: Float = 141.1
var dif4: Float = 14.124

let allValues = [dif1, dif2, dif3, dif4]
func isDifferent(num: Float, value: Float, values: [Float]?, minimalCompareValue: Bool = true) -> Bool {
    if num > value {
        if values != nil && !values!.isEmpty {
            var minValue = values![0]
            let counts = values!.count
            for value in 1..<counts {
                 minValue = min(minValue, values![value])
            }

            return (value != minValue) == minimalCompareValue
        }
        return true
    }
    return false
}

println(isDifferent(53, dif1, allValues)) // true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2019-10-24
    • 1970-01-01
    • 2021-10-17
    • 2013-03-31
    • 1970-01-01
    • 2015-12-26
    相关资源
    最近更新 更多