带矢量和正斜杠的字符串算术
String Arithmetic with vector and forward slash
本文关键字:字符串 更新时间:2023-10-16
我遇到了一个简单的问题:
string minEditOperations(vector<vector<int>> DPTable, string firstString, string secondString)
{
//second string is what first string needs to be changed into, the DPTable function is flipped
int rowIterator = firstString.size() , columnIterator = secondString.size();
string output;
while (rowIterator > 0 && columnIterator > 0)
{
if (firstString[rowIterator - 1] == secondString[columnIterator - 1])
{
//Keep
columnIterator--;
rowIterator--;
output = '^' + output;
}
else
{
//Calculate the different values
int mincompare = min(DPTable[rowIterator - 1][columnIterator - 1], min(DPTable[rowIterator][columnIterator - 1], DPTable[rowIterator - 1][columnIterator]));
if (DPTable[rowIterator - 1][columnIterator - 1] == mincompare)
{
output = "/" + firstString[rowIterator] + output;
}
else if (DPTable[rowIterator -1][columnIterator] == mincompare)
{
output = "-" + output;
}
else
{
//Right
//Insert
output = "+" + firstString[columnIterator] + output;
columnIterator--;
}
}
}
return output;
}
我正在尝试对字符串进行"预处理",但无论何时执行代码,输出字符串都不会更改。
output = "+" + firstString[columnIterator] + output;
有人能解释一下吗?
这个问题似乎是由于试图将字符串添加到char值中而产生的(因为firstString[rowIterator]是一个char)。
试试这样的东西:
output = "/" + string(1, firstString[rowIterator]) + output;
这基本上是从一个字符创建一个长度为1的字符串。