字符串中最大子串问题

原创 2007年09月23日 13:14:00

输入一个字符串,输出其最大子串长度,即子串中任两个字符不相同 。本程序只能输入字母,空格以及逗号,并且不区分大小写,输出为第一个具有最大长度的子串以及其长度。

 

#include<iostream>
#include
<string>
using namespace std;

int chartoi(char c)
...{
    
if(isalnum(c))
        
...{
            
if(isalpha(c))
                
return tolower(c)-'a';
            
else
                
return c-'0'+26;
    }

    
else
        
if(isspace(c))
            
return 36;
        
else if(c==',')
            
return 37;
        
else
        
...{
            cout
<<"error input char"<<endl;
            exit(
0);
        }

}


int substr(char* str, int len)
...{
    
int A[38]=...{0};
    
int i,j;
    
int maxlen=0,templen;
    
int beg=0,end=0;
    
for(i=0,j=0;i<len,j<len; ++j)
    
...{
        
int num=chartoi(str[j]);
        
if(A[num]==0)
            A[num]
=1;
        
else
        
...{
            A[num]
+=1;
            
int step;
            
for(step=i;step<=j;++step)//
            ...{
                
int num1=chartoi(str[step]);
                
if(A[num1]>1)
                
...{
                    
--A[num1];
                    
break;
                }

            }

        
            i
=step+1;

        }

        templen
=j-i+1;
        
if(templen>maxlen)
        
...{
            beg
=i;
            end
=j;
            maxlen
=templen;
        }

    }

    
for(i=beg;i<=end;++i)
        cout
<<str[i];
    cout
<<endl;

    
return maxlen;
}


int main()
...{
    
char str[]="good morning, everyone";
    cout
<<str<<endl;
    cout
<<substr(str,strlen(str))<<endl;
    
return 0;
}

最大子串和问题(Maximum Subarray)

又一个经典问题,对于一个包含负值的数字串array[1...n],要找到他的一个子串array[i...j](0 这里我们需要注意子串和子序列之间的区别。子串是指数组中连续的若干个元素,而子序列只要...
  • joylnwang
  • joylnwang
  • 2011年10月10日 16:46
  • 30887

nyoj 44 子串和【最大子串和】

子串和 时间限制:5000 ms  |  内存限制:65535 KB 难度:3 描述给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的...
  • liuke19950717
  • liuke19950717
  • 2015年08月28日 09:25
  • 2824

最大子串和--动态规划经典问题

【问题描述】  在长度为N的整形数组中,求连续子串的和的最大值,要求复杂度为O(N)。 例如:1 2 3 -1 -20 100 34,结果为134。 #include #include #incl...
  • u014427196
  • u014427196
  • 2015年03月05日 12:36
  • 476

连续子串的最大值(经典的DP问题)

注意对问题扩展和变形情况下的思考。
  • delphiwcdj
  • delphiwcdj
  • 2010年10月07日 21:21
  • 12298

计蒜客-最大子阵列 / NYOJ题目44-子串和

28.48%  1000ms  65536K 在一个数组中找出和最大的连续几个数。(至少包含一个数) 例如: 数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的...
  • hushhw
  • hushhw
  • 2017年08月21日 15:23
  • 165

最大字段和问题

一、最大子段和 题目描述: N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。 例如...
  • lhfl911
  • lhfl911
  • 2016年03月31日 16:31
  • 813

最大子串和的问题,java实现

public class MyTest {     public static void main(String[] args) {     int[] a = {-1,2,3,50,-16,...
  • chengxl90
  • chengxl90
  • 2017年03月15日 15:00
  • 82

leetcode笔记:Maximum Subarray(最大子串和问题)

该题目求最大连续子序列和,是一道非常经典的题。可使用动态规划来完成。...
  • liyuefeilong
  • liyuefeilong
  • 2015年11月02日 23:51
  • 1806

3-10最大长方体问题

。。。动态规划题越来越难了 时常是一下午一道题 还有大半是看别人代码看懂的一小部分 反正是爱好吧 。。。 其实坚持长了 慢慢就成爱好了 话说这题的基础是最大子段和问题 由最大子段和问题又可求最大子矩...
  • yujishi2
  • yujishi2
  • 2013年09月06日 17:57
  • 323

乘积最大问题——动态规划

乘积最大问题——动态规划
  • Fine_rose
  • Fine_rose
  • 2017年03月19日 16:23
  • 1188
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串中最大子串问题
举报原因:
原因补充:

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