一、JavaScript 编程题
查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数。
解答:
/*
* 思路:
* 1. 字母太多,都需要一一统计。所以必须存放在数组或对象中。
* 2. 统计字母个数。所以选择二位数组或对象。
* 3. 二维数组有些烦。因此采用对象存储。var obj = new Object();
* 4. 把“字母”设置成对象的“属性”,“字母数量”设置为对象的“属性值”。obj[str.charAt(i)] = 0;
* 5. 获取字符串中的字符。str.charAt(i)。
* 6. 寻找对象中属性值最大的属性和属性值。
*/
var str1 = "sdddrtkjsfkkkasjdddj";
findStr(str1);
function findStr(str){
var obj = new Object(); // 创建对象:存储字母。
// 获取字母,并存放。
for(var i = 0; i < str.length; i++){
var key = str.charAt(i); // 获取字母。
if(obj[key]){ // 判断对象中是否存在某个属性。获取对象属性值——对象[属性]。
obj[key]++; // 存在时,给属性值再加1。
}else{
obj[key] = 1; // 若不存在时,添加属性并赋值为1。
}
}
var max = 0; // 最多次数。
var maxChar = null; // 最多的字母。
// 在对象中,找出属性值最大的属性(字母)。
for(var key in obj){
if(max < obj[key]){
max = obj[key];
maxChar = key;
}
}
console.log("最多的字符" + maxChar + "出现了" + max + "次!");
}
二、MySQL 编程题
表名 team
ID | Name |
---|---|
1 | a |
2 | b |
3 | b |
4 | a |
5 | c |
6 | c |
要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
例如:删除后的结果应如下:
ID | Name |
---|---|
1 | a |
2 | b |
5 | c |
请写出 SQL 语句。
解答:
-- 思路:
-- 1. 删除表team中的内容:delete from team
-- 2. 删除条件id等于**,离散型用in:where id in 。
-- 3. 条件思路:
-- 3.1 查询 最大id 来源于表team:select max(id) from team
-- 3.2 查询条件 姓名相同中的最大id:group by name
-- 4. 删除比较特殊,需要再套一张表。
-- 4.1 所以:select * from 条件结果表 。
delete from team
where id in(select * from
(select max(id) from team
group by name) as T_new);
三、Java 编程题
判断 101-200 之间有多少个素数,并输出所有素数。
解答:
public PrimeNumber{
// 主函数入口
public static void main(String[] args){
PrimeNumber num = new PrimeNumber();
num.findPrimeNumber(101,200);
}
// 对象方法
public void findPrimeNumber(int num1, int num2){
int a = 0; // 记录素数的个数。
// 循环结构:
for(int i = num1; i <= num2; i++){
int b = 0; // 判断素数:b == 0时,为素数。b != 0 时,不是素数。
// 循环结构:与比i小的数字取余。
for(int j = 2; j < i; j++){
if(i % j == 0){
b++;
}
}
// 分支结构:判断当前数字i是否为素数。
if(b == 0){
a++;
System.out.println("这是第" + a + "个素数:" + i);
}
}
System.out.println("总共有个" + a + "个素数!");
}
}