- 相关推荐
2016年华为上机题目之最长回文
本文为同学们分享的是华为上机题目之最长回文,希望对大家复习华为认证有所帮助!
一段字符串中提取最长的回文长度:
浅显易懂的想法就是假设任何一个位置的字符为回文中心,进行两个方向的扩散,进而提取最长回文。
这是最朴素的想法:
代码如下:
1 #include
2 #include
3 using namespace std;
4
5 char str[100]="abbbbaaa";
6
7
8 //如果是回文长度是偶数个
9 int getMidtwoNum(char* s,int length,int index)
10 {
11 int re=1;
12 int t=index,b=index+1;
13 while(t>=0&&b
14 {
15 if(t==index)
16 re++;
17 else
18 re+=2;
19 b++;
20 t--;
21 }
22 return re;
23 }
24
25 //回文长度是奇数个
26 int getMidoneNum(char* s,int length,int index)
27 {
28 int re=1;
29 int t=index-1,b=index+1;
30 while(t>=0&&b
31 {
32 re+=2;
33 b++;
34 t--;
35 }
36 return re;
37 }
38
39 int getLhw(char* s)
40 {
41 int length=strlen(s);
42 int re=0;
43 int temp=0;
44 for(int i=0;i
45 {
46 temp=max(getMidoneNum(s,length,i),getMidtwoNum(s,length,i));
47 if(temp>re)
48 {
49 re=temp;
50 }
51 }
52 return re;
53 }
54 int main()
55 {
56 cout<
57 getchar();
58 }
【华为上机题目之最长回文】相关文章:
华为认证体系的介绍03-21
华为的企业文化11-18
华为公司企业文化03-25
excel上机操作考试题「附答案」07-19
华为企业管理中的创新秘诀02-13
2016年华为HCNE解密试题07-19
华为质量管理体系分析06-24
华为人力资源管理案例02-04
EMBA面试常见题目及答案04-12
国学知识竞赛题目04-27