- 相關(guān)推薦
2016年華為上機題目之最長回文
本文為同學們分享的是華為上機題目之最長回文,希望對大家復(fù)習華為認證有所幫助!
一段字符串中提取最長的回文長度:
淺顯易懂的想法就是假設(shè)任何一個位置的字符為回文中心,進行兩個方向的擴散,進而提取最長回文。
這是最樸素的想法:
代碼如下:
1 #include
2 #include
3 using namespace std;
4
5 char str[100]="abbbbaaa";
6
7
8 //如果是回文長度是偶數(shù)個
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 //回文長度是奇數(shù)個
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 }
【華為上機題目之最長回文】相關(guān)文章:
華為上機試題匯總01-23
華為Java上機考試題07-04
2016年華為上機考試題10-27
華為的績效管理05-31
華為認證詳解08-27
華為的經(jīng)營理念08-08
word上機測試題及答案02-24
華為專業(yè)認證分類07-11