求两个字符串最大的子字符串C#

此代码由Java改写而来,字符串支持中文格式的。

            string str1 = "中国ab-15";
            string str2 = "中国ab-23";
            byte[] char1 = Encoding.UTF8.GetBytes(str1);
            byte[] char2 = Encoding.UTF8.GetBytes(str2);
            int len1 = char1.Length;
            int len2 = char2.Length;
            string maxchar = "";
            List<byte> temp = new List<byte>();
            int maxl = 0;
            for (int i = 0; i < len1; i++)
                for (int j = 0; j < len2; j++)
                {
                    int pos1 = i;
                    int pos2 = j;
                    int l = 0;
                    temp.Clear();
                    while (char1[pos1] == char2[pos2])
                    {
                        l++;
                        temp.Add(char1[pos1]);
                        if (++pos1 > len1 - 1) break;
                        if (++pos2 > len2 - 1) break;
                    }
                    //System.out.println(""+(++loops)+":"+temp);
                    if (l > maxl)
                    {
                        maxl = l;
                        maxchar =Encoding.UTF8.GetString( temp.ToArray());

                    }
                }
            Console.WriteLine("" + maxl + " " + maxchar);
时间: 2024-08-29 16:40:48

求两个字符串最大的子字符串C#的相关文章

在父字符串中查找子字符串

在父字符串中查找子字符串(指针控制,也可选择标控制) #pragma once #include<iostream> #include<assert.h> using namespace std; char* StrStr(char* source, char* dest) { assert(source&&dest); if (strlen(source) < strlen(dest)) return NULL; char* newSrc = NULL; c

LeetCode最小窗口子字符串以及求解子字符串模板

LeetCode原题地址 题干: 给定字符串S和T,以O(n)复杂度在S中找出包含T中所有字符的最小窗口子字符串. 示例: S = "ADOBECODEBANC"T = "ABC" 最小窗口是"BANC". 备注: 如果没有结果,返回空字符串"". 如果有多个窗口,保证只有一个最小解. Discuss中的答案(并且给出了一个求解所有子字符串问题的模板): 原题的解: 1 string minWindow(string s, s

python判断字符串是否包含子字符串

python的string对象没有contains方法,不可以使用string.contains的方法判断是否包含子字符串,但是python有更简单的方法来替换contains函数 python的string对象没有contains方法,不可以使用string.contains的方法判断是否包含子字符串,但是python有更简单的方法来替换contains函数 python的string对象没有contains方法,不可以使用string.contains的方法判断是否包含子字符串,但是pyth

C# 截取两个字符串中间的子字符串

/// <summary> /// 截取中间字符 /// </summary> /// <param name="text">全字符串</param> /// <param name="start">开始字符串 </param> /// <param name="end">结束字符串 </param> /// <returns></r

在一个字符串中提取子字符串

一.提取字符串函数int substr(char dst[], char src[], int start, int len): 分析: 源字符串src[]用来提供字符串: 目的字符串dst[]用来接收子字符串: 从src[]的起始位置向后偏移,从start的位置开始最多复制len个字符,当src[]中字符数可以从start个字符开始复制len个字符,那么可以复制len个字符:当从start开始到字符串结束,即遇到'\0'时,小于len个字符,那么只需复制从start开始到字符串结束的字符串.

SQL计算字符串里的子字符串出现个数

在某个页面,需要显示每条记录中有几个图片文件.图片文件名列表存储在mysql表里的photo_files字段,文件名之间用一个空格分开.类似'images\rpt201503121.jpg images\rpt201503122.jpg images\rpt201503123.jpg'这样. mysql的sql语句并不支持正则表达式函数(或者说极其有限),因此最容易想到的是用sql取出来后用PHP的explode函数放到数组里,计算数组元素个数就知道图片文件个数了.但有没有更简单的办法呢? 我的

从字符串中提取子字符串

#include <assert.h> int substr(char dst[], char src[], int start, int len) {  int srcLen = strlen(src);  int left = 0;  assert(dst);  assert(src);  if (srcLen < start)  {   return -1;  }  while (start--)    {   src++;             //指针向后偏移start  }

寻找子字符串——上

第十一章的习题7,刚开始觉得简单,可是实际思考时发现要考虑很多东西,然后脑子就一片混沌了,然后问题一拖一个月,然而时间并没有帮我解决掉问题,问题还是要自己去努力接触才能发展的呀. 有参考答案,上网也找到了答案,昨天验证了下,是对的.自己就是眼高手低,还犟,想凭借自己的"智慧"想出来(别人的我看了觉得费劲,而且很难理解他的思想,他到底是怎么想到的呢).不过不能自负,遇到问题想不出来很正常,就该学习自己想不到的思路,改变自己的思维方式.应该向前人学习,可以先读懂,理解一点是一点,接触多了自

字符串内子字符串的逆序算法

源于一道ACM的题目,要求将字符串中的子字符串逆序输出,最初的想法就是利用strtok按照空格进行分割字符,再实现以下单个字符串的逆序,再通过strcat进行字符串的拼接,感觉这个想法不错,利用库函数搞搞,但是不知道哪里出错,strcat出来的字符串输出的时候会出现多个换行,非常难受,感觉一个简单的问题,代码太多,所以睡觉的时候就在想,我应该考虑自己写一个算法来实现这个需求,刚好最近在看算法方面的书,那就尝试下吧. 基本思想,从前往后扫描字符串,遇到空格停止,字符串第一个字符start位置,扫描