获取两个字符串的最大子字符串

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GetsTheLargestSubcharcaterOfTwoStrings : MonoBehaviour {
    
    public string string01;             //字符串1
    public string string02;             //字符串2
    public string string03;             //两个字符串最长子字符串
    /// <summary>
    /// 点击获取最大子字符串方法
    /// </summary>
    public void OnClick_GetsTheLargestSubcharcater_Method()
    {
        //两个字符串都有信息
        if (string01.Length != 0 && string02.Length != 0)
        {
            if (string01 == string02)
            {
                string03 = string01;            //两个字符串相同,返回任何一个
                return;
            }
            else
            {
                //两个字符串不同
                int len1 = string01.Length;
                int len2 = string02.Length;
                int maxLen = 0;                 //最大相同子字符串数
                for(int i = 0; i < len1; i++)
                {
                    for(int j = 0; j < len2; j++)
                    {
                        if (string01[i] == string02[j])
                        {
                            //找到第一个相同的值
                            int n = i;
                            int m = j;
                            int subLen = 0;
                            string tempStr = string.Empty;          //创建一个临时记录变量
                            while (string01[n] == string02[m])
                            {
                                //找到相同的之后,让两个字符串的下一个进行比较,查看是否相同
                                n++;
                                m++;
                                subLen++;
                                tempStr += string01[n-1];
                                //直到有一个字符串为结尾为止
                                if (n == len1 || m == len2)
                                {
                                    break;
                                }
                            }
                            if (maxLen < subLen)
                            {
                                maxLen = subLen;            //重新赋值最大相同子字符数
                                string03 = tempStr;
                            }
                        }
                    }
                }
            }
        }
        else
        {
            string03 = string.Empty;            //为空
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_34444468/article/details/84327867
今日推荐