zoukankan      html  css  js  c++  java
  • 取两个相似字符串的不同部分

    void DiffBetweenString(string str1, string str2, int& nDiffFirst, int& nDiffLength)
    {
    int nLength = str1.length() - str2.length();
    string longString;
    string shortString;
    if (nLength > 0)
    {
    longString = str1;
    shortString = str2;
    }
    else
    {
    nLength = -nLength;
    longString = str2;
    shortString = str1;
    }

    nDiffFirst = 0;
    nDiffLength = nLength;
    int nDiffEnd = longString.length() > 0 ? longString.length() - 1 : 0;
    if (shortString.length() == 0 || longString.length() == 0)
    goto Exit;

    while (nDiffFirst < shortString.length() && longString[nDiffFirst] == shortString[nDiffFirst])
    ++nDiffFirst;
    if (nDiffFirst == shortString.length())
    goto Exit;

    while (nDiffEnd - nLength > 0 && longString[nDiffEnd] == shortString[nDiffEnd - nLength])
    --nDiffEnd;

    nDiffLength = nDiffEnd - nDiffFirst;
    if (nDiffLength < 0)
    {
    nDiffLength = (-nDiffLength) > nLength ? nLength : (-nDiffLength);
    }
    else
    {
    ++nDiffLength;
    }

    Exit:

    cout << longString.substr(nDiffFirst, nDiffLength) << endl;
    cout << shortString.substr(nDiffFirst, nDiffLength - nLength) << endl;
    }

  • 相关阅读:
    贪心算法
    机器视觉算法与应用读书笔记(算法)
    多层感知机面临的问题
    反向传播
    卷积后的输出尺寸
    TensorFlow入门
    MyBatis-使用XML或注解的简单实例
    在web.xml中配置SpringMVC
    深入理解Class类和Object类
    MySQL索引
  • 原文地址:https://www.cnblogs.com/change4587/p/8627769.html
Copyright © 2011-2022 走看看