JavaScript 编程题
- 查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery.min.js"></script>
</head>
<body>
<!--查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数。-->
<script>
test1();
function test1(){
var x = "sdddrtkjsfkkkasjdddj";
// 创建一个存储字符的对象,key为字符本身,value为这个字符出现的次数
var obj = {};
for (var i = 0; i < x.length; i++) {
// 把字符串的每个字符检索过去
var tmp = x.charAt(i);
// 如果该字符曾经出现过,那么就+1
if (obj[tmp] > 0) {
obj[tmp]++;
} else{
// 没有出现过的话就赋值为1
obj[tmp] = 1;
}
}
// 就这样通过循环获得了一个obj对象,接下来判断个数组多的那一个
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>
</body>
</html>
MySQL 编程题
- 一开始我写出的是这个语句
DELETE FROM test WHERE id NOT IN (SELECT MIN(id) AS id FROM test GROUP BY name)
- 得出的结果如下,我个人觉得应该没毛病
- 结果就是错了,想不通去百度了
- 问题所在:
- 在MySQL中,写SQL语句的时候 ,可能会遇到You can’t specify target table ‘表名’ for update in FROM clause这样的错误,它的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中),即不能依据某字段值做判断再来更新某字段的值。
- 问题解决:
- 将SELECT出的结果再通过中间表SELECT一遍,这样就规避了错误。
- 于是得出了如下的查询语句
DELETE FROM test WHERE id NOT IN (SELECT a.id FROM (SELECT MIN(id) AS id FROM test GROUP BY name ) AS a)
- 结果如下
- 表的字段也发生了改变
- 于是乎,问题圆满解决,既复习了子查询,又学习到了新的知识
Java 编程题
- 判断 101-200 之间有多少个素数,并输出所有素数。
public static void test1(int min, int max) {
// 素数,只能被1和本身整除的数
int count = 0;
for (int i = min; i <= max; i++) {
for(int j = 2; j <= i; j++) {
if(i % j == 0 ) {
// i和j相等,此数必定为素数
if(i == j) {
System.out.print(i + ",");
count++;
}
// i和j不相等但是进入了if的代码块,说明可以被1和自身以外的数整除
break;
}
}
}
System.out.println();
System.out.println("共有"+ count +"个素数");
}
- 结果