找出字符串中字母不重复的最长的子字符串
来源:互联网 发布:江恩晚年一贫如洗 知乎 编辑:程序博客网 时间:2024/05/01 02:42
即如: abcdecd, 那么就是abcde ;
若aaaaa, 那么就是a
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication4{ class Program { static void Main(string[] args) { string s = "abcababcdefgfg"; char[] list = s.ToCharArray(); FindMaxSubDifferenceString ss = new FindMaxSubDifferenceString(); ss.FindMaxSubDifferenceStringS(list, s.Length); string s1 = "aaaaaa"; char[] list1 = s1.ToCharArray(); ss.FindMaxSubDifferenceStringS(list1, s1.Length); string s2 = "ababab"; char[] list2 = s2.ToCharArray(); ss.FindMaxSubDifferenceStringS(list2, s2.Length); string s3 = "abcababcdefgfgabcababcdefgfg"; char[] list3 = s3.ToCharArray(); ss.FindMaxSubDifferenceStringS(list3, s3.Length); } } public class FindMaxSubDifferenceString { public bool IsDup(char[] list, int len, char targetChar, int begin, int end, out int targetIndex) { targetIndex = -1; // Note: first, we need to check all parameters are valid, such as list is null, len >0, or begin <end, begin>0, end<len, etc for(int i=begin;i<=end; i++) { if(list[i]==targetChar) { targetIndex = i; return true; } } return false; } public void FindMaxSubDifferenceStringS(char[] list, int len) { if (list == null) return; if (len <= 0) return; int maxSubStringLen = 0; int maxSubStringBeginIndex = 0; int currentMaxSubStringBeginIndex = 0; int currentMaxSubLen = 0; for (int i = 1; i < len; i++) { int dupIndex = -1; if (IsDup(list, len, list[i], currentMaxSubStringBeginIndex, i - 1, out dupIndex)) { currentMaxSubLen = i - currentMaxSubStringBeginIndex; if (currentMaxSubLen > maxSubStringLen) { maxSubStringLen = currentMaxSubLen; maxSubStringBeginIndex = currentMaxSubStringBeginIndex; } else { } currentMaxSubStringBeginIndex = dupIndex + 1; } else //not dup { } } if (maxSubStringLen == 0) { maxSubStringLen = len; } Console.Write("Input string: "); for (int i = 0; i < len; i++) { Console.Write(list[i]); } Console.WriteLine(""); Console.Write("After Input: "); for (int i = maxSubStringBeginIndex; i < maxSubStringBeginIndex + maxSubStringLen; i++) { Console.Write(list[i]); } Console.WriteLine(""); } }}
0 0
- 找出字符串中字母不重复的最长的子字符串
- 从字符串中找出一个最长的不含重复字符的子字符串
- 找出字符串的最长不重复子串
- 找出字符串的最长不重复子串,输出长度
- 找出字符串的最长不重复子串,输出长度
- 找出字符串的最长不重复子串,输出长度
- 找出字符串中第一个不重复的字母
- 找出字符串中重复最多的字母
- 找出一个字符串中不含重复字符的最长子字符串
- 找出字符串中最长的子串
- 求字符串中不重复字符的最长子串
- 一个字符串中最长的不重复子串
- 找出一个字符串中出现的重复的最长的字符子串
- 从字符串S中找出不包含重复字符的最大连续子字符串长度
- 找出字符串中最长的一段没有重复字符的子串
- 找出字符串最长不重复子串,输出长度
- 找出字符串中最长的重复子串(三种解法)
- Java找出一个字符串中重复最多字母的次数
- 【Odoo】Odoo_CRM数据操作
- Dijkstra代码编写过程
- 算法——X^3+Y^3+Z^3=XYZ(水仙花数)
- Laravel——框架体系结构
- [Win32]一个调试器的实现(九)符号模型
- 找出字符串中字母不重复的最长的子字符串
- Cornerstone(SVN客户端) 创建分支 合并分支
- 通知监听
- MVC探索之路(1、MVC的基础概念)
- 当前穷人子弟还可以进阶到中产的方法
- 【网络爬虫】数据采集——将html的数据分析保存到数据库
- 介绍一篇关于session的好文章
- DELL R820安装
- 三、三维模型添加