比较两个字符串的最长的相同字符串 及其位置和百分比

原创 2011年10月17日 17:44:19
  /// <summary>
        /// 
        /// </summary>
        /// <param name="DataKey"></param>
        /// <param name="DataSoure"></param>
        /// <param name="minPercentage"></param>
        /// <param name="maxPercentage"></param>
        /// <param name="minstarLoca"></param>
        /// <param name="maxstarLoca"></param>
        /// <returns></returns>
        public static string getSomeString(string DataKey
                                          ,string DataSoure
                                          ,out string minPercentage
                                          ,out string maxPercentage
                                          ,out int minstarLoca
                                          ,out int maxstarLoca) 
        {
            string strReturn = "";
            int strBeginStar = 0,strlength=1,maxlength=0;
            bool IsGoOn=true;
            string strTemp ="";
            //使用短的区匹配长的 加快速度
            string strKey, strSoure;
            strKey = DataKey.Length >= DataSoure.Length ? DataSoure : DataKey;
            strSoure = DataKey.Length > DataSoure.Length ? DataKey : DataSoure;
            minstarLoca = 0; maxstarLoca = 0; minPercentage = "0"; maxPercentage = "0";
            while (maxlength <= strKey.Length)
             {
                strTemp = strKey.Substring(strBeginStar, strlength);
                while (strSoure.IndexOf(strTemp) > -1 && maxlength <= strKey.Length)
                {
                    minstarLoca = strBeginStar;
                    maxstarLoca = strSoure.IndexOf(strTemp);
                    strReturn = strTemp;
                    strlength = strlength + 1;
                    maxlength = strlength + strBeginStar;
                    if (maxlength <= strKey.Length)
                    {
                        strTemp = strKey.Substring(strBeginStar, strlength);
                    }
                }
                strBeginStar = strBeginStar + 1;
                maxlength = strlength + strBeginStar;     
             }
            minPercentage = ((double)strReturn.Length * 100 / strSoure.Length).ToString();
            maxPercentage = ((double)strReturn.Length * 100 / strKey.Length).ToString();
            return strReturn;
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string strMax,strMin;
            int minstar,maxstar;
            string str = getSomeString(TextBox1.Text.Trim(), TextBox2.Text.Trim(), out strMin, out strMax, out minstar, out maxstar);
            Label1.Text = "最大百分比为:" + strMax + "最小百分比为:" + strMin + "在小字符串中开始位置:" + minstar.ToString() + "在大字符串中开始位置:" + maxstar.ToString()+ "<br/>匹配字符串为:" + str;
        }

 

输入一行字符串,找出其中出现的相同且长度最长的字符串,输出他及其首字符串位置

从前面用两个for语句 #include #include using namespace std; void main(){ string str = "yyabcdabcda...
  • dy0558775258712345
  • dy0558775258712345
  • 2014-05-15 21:43:48
  • 632

获取两个字符串中最长的公共字符串

例题:longest common substring 获取两个字符串中最长的公共字符串 如: 如果s1=’abcdefgh’,s2=’cdefgh’; s1与s2的最长公共字符串’cd’例子:...
  • justheretobe
  • justheretobe
  • 2016-06-26 21:30:59
  • 679

字符串公共字符串(C++)

  • 2008年11月27日 17:58
  • 4KB
  • 下载

找出两个字符串中最长的相同的字符串

问题: 请写一个函数,找出两个字符串中最长的相同的字符串。比如: 字符串“likeyou”和“Lookyou” 最长的相同字符串是“you” 怎么写? 来源: http://topic.csdn...
  • heguodong
  • heguodong
  • 2010-06-11 03:28:00
  • 3552

输入一行字符串,找出其中的相同且长度最长的字符串P227

#include #include using namespace std; //输入一行字符串,找出其中的相同且长度最长的字符串P227 pair fun(string s){ string ...
  • gukesdo
  • gukesdo
  • 2012-05-28 21:22:10
  • 2397

[Java]取得两个字符串的最大相同子串

思路:           1.取得两个字符串中相对较短的一个,记作s2,较长的字符串记作s; 2.判断s2是否为s的子串,如果是,直接输出,如果不是,执行下边的代码 3.对s2进行截取,从s2[0...
  • windbeside
  • windbeside
  • 2015-04-13 15:25:16
  • 2441

求一个字符串中出现相同且长度最长的字符串

题目:输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置。                例如:“yyabcdabjcabceg",输出结果应该为abc 和3. ...
  • wangfengfan1
  • wangfengfan1
  • 2015-08-06 21:09:58
  • 466

求一段字符串中出现的相同且长度最长的字符串

求一段字符串中出现的相同且长度最长的字符串 int main() { string str,substr; string str1; int t3; int t1 = 0; ...
  • u011484045
  • u011484045
  • 2015-09-04 10:39:03
  • 911

C语言strpbrk()函数:返回两个字符串中首个相同字符的位置

头文件:#include strpbrk()函数检索两个字符串中首个相同字符的位置,其原型为:     char *strpbrk( char *s1, char *s2); 【参数说明】s1、...
  • A493203176
  • A493203176
  • 2017-05-09 10:36:06
  • 191

输出多次出现的最长子串

  • 2014年01月07日 22:40
  • 699B
  • 下载
收藏助手
不良信息举报
您举报文章:比较两个字符串的最长的相同字符串 及其位置和百分比
举报原因:
原因补充:

(最多只允许输入30个字)