带矢量和正斜杠的字符串算术

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的字符串。