面试的两道试题

来源:互联网 发布:阿里双十一实时数据 编辑:程序博客网 时间:2024/06/05 00:55
发表于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

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

设计的确有好多的变化,比较别人的思想,可以比自己想到更大空间,同时又可能限制左自己的想法~~~~
原创粉丝点击