查找字符串中字符不重复的最大子串(C/C++)
//输入参数:*str 搜索字符串
// subStrLen 用于返回找到的最大子字符串长度
//返回:找到的最大子字符串指针
char * findMaxSubStr(char *str, int &subStrLen){
char *subStr;
char *p = str;
int index[256] ;
for (int ix = 0; ix < sizeof(index)/sizeof(index[0]); ix++)
{
index[ix] = -1;
}
int subStrPos = 0; // 子字符串在字符串str中的偏移
int charPos = 0; // 当前字符在字符串str中的偏移
int currLen = 0; //当前子字符串长度
int maxLen = 0; //已经找到的最大子字符串长度
char ch;
while (ch = *p)
{
if (index[ch] < subStrPos){ //字符首次出现 或者 字符在子字符串开始的位置后首次出现
index[ch] = charPos;
currLen++;
}else {
currLen = charPos - index[ch];
subStrPos = ++index[ch];
index[ch] = charPos;
}
if (currLen > maxLen)
{
subStr = str + subStrPos;
maxLen = currLen;
}
p++;
charPos++;
}
subStrLen = maxLen;
return subStr;
}
相关文档:
检查内核参数
正在检查 semmsl=250; 已发现 semmsl=250。 通过
正在检查 semmns=32000; 已发现 semmns=32000。 通过
正在检查 semopm=100; 已发现 semopm=32。 失败 <<<<
正在检查 semmni=128; 已发现 semmni=128。 通过
正在检查 shmmax=536870912; 已发现 shmmax=33554432。 失败 <<<< ......
本文仅限于C,主要自己老忘。别的废话少说。
1.Basic
首先考虑函数在函数体内的定义,如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int add(int,int);
int def(int, int);
printf("%d\n", add(1,3));
printf("%d\n", def(3,1));
  ......
#include <stdio.h>
#include <string.h>
#include <math.h>
#define BASE 10
int intlen(long n);
int main()
{
int i, j, num, sz;
i = j = num = sz = 0;
if (!scanf("%d", &num) || num <= 0) {
printf("invalid input\n");
retu ......
本人在做毕设的时候遇到的一些问题,在这里总结一下,希望会对大家有些帮助~有不足之处还望指出,大家共同进步^_^
一、基本介绍:
1.运行环境VC6.0(Microsoft Visual C++ 6.0)(http://40.duote.org/microsoft_visualc6.zip)
2.课题相关内容:AVS视频编码
二、出现的问题及解决方法:
1.问题:
fatal er ......
C输出格式总结
2007-07-08 12:09
1 一般格式
printf(格式控制,输出表列)
例如:printf("i=%d,ch=%c\n",i,ch);
说明:
(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
&nbs ......