编程素养Day003
Q1:JavaScript 编程题
查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
var str = "sdddrtkjsfkkkasjdddj";
// 使用对象记录字符出现的次数,键为各个字符,值为字符出现的次数
var obj = {};
for(var i = 0; i < str.length; i++) {
//获得字符
var char = str.charAt(i);
//若对象已有该字符属性,值加1
if(obj[char]) {
obj[char]++;
} else {
//第一次出现该字符,值记为1
obj[char] = 1;
}
}
//记录出现最多次数
var max = 0;
for(var key in obj) {
if(obj[key] >= max) {
max = obj[key];
}
}
//打印
for(var key in obj) {
if(obj[key] == max) {
console.log("出现次数最多的字符:" + key);
console.log("出现次数:" + obj[key]);
}
}
</script>
</html>
运行结果:

【分析】将字符串的每一个字母取出来进行比对,若第一次出现就置为1,否则就数量加1.。最后统计出出现次数最多的。
Q2:MySQL 编程题
表名 team

要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
例如:删除后的结果应如下:

请写出代码:
DELETE FROM team WHERE id NOT IN (SELECT a.id FROM (SELECT MIN(id) AS id FROM team GROUP BY name ) a)
【分析】首先分组找出每个名字对应的最小id,然后将不是这些id中的所有成员都删除。
Q3:Java 编程题
判断 101-200 之间有多少个素数,并输出所有素数。
package test; public class Test2 { public static void main(String[] args) { int count = 0; for (int i = 101; i <= 200; i++) { int j; for (j = 2; j < i; j++) { // 如果j能被i整出在跳出循环 if (i % j == 0) { break; } } // 判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数 if (j >= i) { count++; System.out.print(i + "\t"); // 换行,用count计数,每五个数换行 if (count % 5 == 0) { System.out.print("\n"); } } } } }
运行结果:

【分析】首先我们先写一个识别素数的函数,然后通过一个for循环进行排查。
总结:
今天中我们主要学习了如何对字符串进行分析,我以前在java中使用都是spite进行分词;SQL语句部分,我们今天学习了嵌套查询;最后的排查素数,
主要就是你如何去思考问题,怎么一步一步解决问题。

浙公网安备 33010602011771号