33,008
社区成员
发帖
与我相关
我的任务
分享
function TForm2.HFindMostlong(str: string): string;
var
I:integer;
m_str:string;
begin
result:='';
m_str:='';
for I := 1 to length(str) do
begin
if HIsHaveChar(m_str,str[I]) then
begin
if length(m_str) > length(result) then result := m_str ;
m_str:='';
end;
m_str := m_str + str[I];
end;
if length(m_str) > length(result) then result := m_str ;
end;
function TForm2.HIsHaveChar(str: string; mChar: char): boolean;
var
i:integer;
begin
result := false;
for I := 1 to length(str) do
begin
if mchar = str[i] then result := true;
end;
end;
function TForm2.HFindMostlong(str: string): string;
var
I:integer;
m_str:string;
begin
result:='';
m_str:='';
for I := 1 to length(str) do
begin
if HIsHaveChar(m_str,str[I]) then
begin
if length(m_str) > length(result) then result := m_str ;
m_str:='';
end;
m_str := m_str + str[I];
end;
end;
function TForm2.HIsHaveChar(str: string; mChar: char): boolean;
var
i:integer;
begin
result := false;
for I := 1 to length(str) do
begin
if mchar = str[i] then result := true;
end;
end;
int solve(char* ary,int len)
{
if(ary==NULL || len<0)
return 0;
int max=0,currentMax=0,minPos=0,index=0;
int hash[27]={0};
for(int i=0;i<len;i++)
{
index=ary[i]-'a'+1;
if(hash[index]!=0)
{
if(hash[index]-1>=minPos)
{
currentMax=i-hash[index]+1;
minPos=hash[index];
}
else
currentMax=i-minPos+1;
}
else
currentMax=i-minPos+1;
hash[index]=i+1;
if(currentMax>max)
max=currentMax;
}
return max;
}
int main()
{
char ary[]="fedff";
cout<<solve(ary,sizeof(ary)/sizeof(char)-1);
system("pause");
return 0;
}
public int GetMaxLengthOfSubstringWithoutDuplicateChars(string s)
{
Queue<char> queue = new Queue<char>();
int result = 0;
for (int i = 0; i < s.Length; i++)
{
if (queue.Contains(s[i]))
{
queue.Clear();
}
queue.Enqueue(s[i]);
if (queue.Count > result)
{
result = queue.Count;
}
}
return result;
}
、
int find_maxlength(const char *str)
{
int IsAppear[26]={0}; // mark to know if the character appeared
int curleng=0,maxlength=0;
char *p=NULL;
if (!str)
{
return 0;
}
p=str;
while(*p)
{
int index=*p-'a';
if (!IsAppear[index])
{
IsAppear[index]=1;
curleng++;
}
else
{
curleng=0;
}
if (curleng>maxlength)
{
maxlength=curleng;
}
p++;
}
return maxlength;
}
void main()
{
char *s="abcbec";
int length=find_maxlength(s);
cout<<length<<endl;
}