public class SUNDAY{
public int QfindChr(string str, string Sfind)
{
int str_length = 0;
int fin_length = 0;
int find_count = 0;
int start = 0;
int moveNum = 0;
if (str.Length < Sfind.Length)
{
return find_count;
}
str_length = str.Length;
fin_length = Sfind.Length;
while (start + fin_length <= str_length)
{
moveNum++;
bool isfind = false;//是否在这次移动中找到
string s_temp = str.Substring(start, fin_length);
if (s_temp == Sfind)
{ find_count++; start = start + fin_length; isfind= true; }
if (isfind == false)//如果没找到计算下次移动位置
{
int forwardPos = QfindPos(str, Sfind, start, fin_length);
start = forwardPos;
}
}
return find_count;
}
public int QfindPos(string str, string find, int pos, int fin_length)
{
int returnPos = str.Length;
char[] Schr = str.ToCharArray();
char[] Sfin = find.ToCharArray();
if ((pos + fin_length) < str.Length)
{
char chrFind = Schr[pos + fin_length];//要找的字符
if (fin_length >= 1)
{
if (find.LastIndexOf(chrFind) > -1)
{
returnPos = pos + fin_length - find.LastIndexOf(chrFind);
}
else
{
returnPos = pos + fin_length + 1;
}
}
}
return returnPos;
}
}
谁能解释一下第二个函数的具体流程呀谢谢 仅限于这个sunday算法