求一个字符串中连续出现次数最多的…
2014-09-25 13:31
218 查看
本文转自:/article/7656028.html
求一个字符串中连续出现次数最多的子串,例如:abcbcbcabc,
这个串中连续出出次数最多的子串是bc, 它出现了3次。
以下是我的实现代码,用c语言实现,已经编译通过。
5 int count
= 0;
6 char sub_str[256];
7
8 void find_str(char *str)
9 {
10 int str_len
= strlen(str);
11 int i,
j, k;
12 int tmp_cnt
= 0;
13
14 for (i
= 0; i
< str_len; i++)
15
{
16 for (j
= i+1; j < str_len;
j++)
17
{
18 int n
=
j-i; //sub
string length
19
tmp_cnt = 1;
20 if (strncmp(&str[i],
&str[j], n) == 0) //compare
n-lengths strings
21
{
22
tmp_cnt++; //they
are equal, so add count
23 for (k
= j+n; k < str_len; k +=
n) //consecutive checking
24
{
25 if (strncmp(&str[i],
&str[k], n) == 0)
26
{
27
tmp_cnt++;
28
}
29 else
30 break;
31
}
32 if (count
< tmp_cnt)
33
{
34
count = tmp_cnt;
35
memcpy(sub_str, &str[i],
n); //record the sub
string
36
}
37
}
38
}
39
40
}
41 }
42
43 int main()
44 {
45 char *str
= "abcbcbcabc";
46
find_str(str);
47
printf("%d, %s/n", count, sub_str);
48 return 0;
49 }
求一个字符串中连续出现次数最多的子串,例如:abcbcbcabc,
这个串中连续出出次数最多的子串是bc, 它出现了3次。
以下是我的实现代码,用c语言实现,已经编译通过。
5 int count
= 0;
6 char sub_str[256];
7
8 void find_str(char *str)
9 {
10 int str_len
= strlen(str);
11 int i,
j, k;
12 int tmp_cnt
= 0;
13
14 for (i
= 0; i
< str_len; i++)
15
{
16 for (j
= i+1; j < str_len;
j++)
17
{
18 int n
=
j-i; //sub
string length
19
tmp_cnt = 1;
20 if (strncmp(&str[i],
&str[j], n) == 0) //compare
n-lengths strings
21
{
22
tmp_cnt++; //they
are equal, so add count
23 for (k
= j+n; k < str_len; k +=
n) //consecutive checking
24
{
25 if (strncmp(&str[i],
&str[k], n) == 0)
26
{
27
tmp_cnt++;
28
}
29 else
30 break;
31
}
32 if (count
< tmp_cnt)
33
{
34
count = tmp_cnt;
35
memcpy(sub_str, &str[i],
n); //record the sub
string
36
}
37
}
38
}
39
40
}
41 }
42
43 int main()
44 {
45 char *str
= "abcbcbcabc";
46
find_str(str);
47
printf("%d, %s/n", count, sub_str);
48 return 0;
49 }
相关文章推荐
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 寻找一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 编程珠玑(四)求一个字符串中连续出现的次数最多的子串
- 最新的微软面试题,题目:求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的字串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的字串
- 所谓微软面试题的解答:求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串【转】
- 寻找一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中出现次数最多的子串(并不是连续的)