面試的兩道試題

發表於2008年08月11日 00:58 閱讀(24) 評論(2)
真系要寫程序出黎先知功底差!

1.問題:給出一串字符串,如"avASkdggddiphhppSSDFFJOK",就你設設一程序求出現次數最多的那個字母出現的次數。

//////////////////////////////////////////////////////////////
網絡上找到的一些想法:
答案:同樣選用cin.getline( )函數實現字符串讀入。統計過程的實現同樣依靠循環依次判斷歸類並計數。根據題目要求,統計值應該有26個,爲簡化處理,使用整型數組實現。
實現一:歸類用switch語句實現。
#include<iostream.h>
void main()
{
char s[81];//定義存放字符串的數組
int c[26]={0};//定義存放個數的數組,各記數值賦初值爲0
cin.getline(s,81);//讀入一行帶空白符的字符串
for(int i=0;s;i++)//從字符串頭到尾循環判斷
{
switch(s){//如果是某字母,相應計數值加一
case 'A': case 'a': c[0]++; break;
case 'B': case 'b': c[1]++; break;
case 'C': case 'c': c[2]++; break;
case 'D': case 'd': c[3]++; break;
case 'E': case 'e': c[4]++; break;
case 'F': case 'f': c[5]++; break;
case 'G': case 'g': c[6]++; break;
case 'H': case 'h': c[7]++; break;
case 'I': case 'i': c[8]++; break;
case 'J': case 'j': c[9]++; break;
case 'K': case 'k': c[10]++; break;
case 'L': case 'l': c[11]++; break;
case 'M': case 'm': c[12]++; break;
case 'N': case 'n': c[13]++; break;
case 'O': case 'o': c[14]++; break;
case 'P': case 'p': c[15]++; break;
case 'Q': case 'q': c[16]++; break;
case 'R': case 'r': c[17]++; break;
case 'S': case 's': c[18]++; break;
case 'T': case 't': c[19]++; break;
case 'U': case 'u': c[20]++; break;
case 'V': case 'v': c[21]++; break;
case 'W': case 'w': c[22]++; break;
case 'X': case 'x': c[23]++; break;
case 'Y': case 'y': c[24]++; break;
case 'Z': case 'z': c[25]++; break;
}
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"個數:"<<c<<endl;//輸出26個字母的個數
}
實現二:利用ASCII碼錶中字母字符排序與字母順序相同的特點簡化了歸類判斷。
#include<iostream.h>
void main()
{
char s[81];//定義存放字符串的數組
int c[26]={0};//定義存放個數的數組,各記數值賦初值爲0
int zm;
cin.getline(s,81);//讀入一行帶空白符的字符串
for(int i=0;s;i++)//從字符串頭到尾循環判斷
{
if(s>='a'&&s<='z'){ zm=s-'a'; c[zm]++; }//如果是小寫字母,相應字母個數加一
if(s>='A'&&s<='Z'){ zm=s-'A'; c[zm]++; } //如果是大寫字母,相應字母個數加一
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"個數:"<<c<<endl;//輸出26個字母的個數
}

2.問題:設計一個目錄(象Windows的敢)用數據庫保存這樣的結構

網絡上找到的一些想法:

////////////////////////////////////////////////

多級目錄數據庫設計方案
在實際工作中,經常碰到需要多級目錄的情況,例如設計一個論壇,它的版面是分級的,而且爲了靈活擴展,這種分級是沒有限制的,也就是說設計者,不限制用戶設定多少級目錄。
  針對這種情況,我提出的設計方案如下,先設計如下的 Table (以 SQL Server 爲例)
  
CREATE TABLE [ 版面表 ] (
       [id] [int] IDENTITY (1, 1) NOT NULL ,
       [ 版面名稱 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
       [ 版面級別 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
       [ 上級版面 id] [int] NOT NULL
) ON [PRIMARY]
  
其中頂級版面的上級版面 id 就是它自己的版面 id
輸入如下數據:

  id

版面名稱        

版面級別

上級版面 id

       1

英語學習

1

1

       2

四六級學習

2

1

       3

GRE

2

1

       4

GRE 作文

3

3

       5

GRE 詞彙

3

3

       6

GRE 閱讀

3

3

       7

GRE 填空

3

3

       8

GRE 作文互評

4

4

       9

GRE 作文提綱

4

4

       10

TOEFL

2

1

       11

TOEFL 作文

3

10

       12

TOEFL 聽力

3

10

       13

TOEFL 閱讀

3

10

       14

TOEFL 語法

3

10

       15

體育

1

15

       16

足球

2

15

       17

中國足球

3

16

       18

世界足球

3

16

       19

籃球

2

15

       20

CBA

3

19

       21

NBA

3

19

/////////////////////////////////////////////////////////////////////

設計的確有好多的變化,比較別人的思想,可以比自己想到更大空間,同時又可能限制左自己的想法~~~~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章