【发布时间】: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