1 查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
var str = "sdddrtkjsfkkkasjdddj";
// 使用对象记录字符出现的次数,键为各个字符,值为字符出现的次数
var obj = {};
// 循环str,判断每个元素出现的次数
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i);
if (obj[char]) {
obj[char]++//次数加1
} else {
obj[char] = 1;//若第一次出现,次数记为1
}
}
console.log(obj); //输出的是完整的对象,记录着每一个字符及其出现的次数
//遍历对象判断出现最多次的次数
var max = 0;
for (var key in obj) {
if (max < obj[key])
max = obj[key];
}
//判断出现最多次的字符
for (var key in obj) {
if (max == obj[key]) {
console.log('次数:' + max);
console.log('最多次字符:' +key);
}
}
</script>
</html>
key value则是表示键值对的结构如{name:"张三"},此处,name就是key,"张三"就是value.
综上,for in 和key value 一起中就是遍历一个集合中的key 和value值
2 要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
表名 team
ID | Name |
---|---|
1 | a |
2 | b |
3 | b |
4 | a |
5 | c |
6 | c |
例如:删除后的结果应如下:
ID | Name |
---|---|
1 | a |
2 | b |
5 | c |
DROP TABLE IF EXISTS team;
CREATE TABLE `team` (
`id` int(11) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
INSERT team(id,name) VALUES (1,'a');
INSERT team(id,name) VALUES (2,'b');
INSERT team(id,name) VALUES (3,'b');
INSERT team(id,name) VALUES (4,'a');
INSERT team(id,name) VALUES (5,'c');
INSERT team(id,name) VALUES (6,'c');
DELETE
FROM team
WHERE id NOT IN
(SELECT a.id
FROM
(SELECT MIN(id) AS id
FROM team
GROUP BY name ) a)
3 判断 101-200 之间有多少个素数,并输出所有素数。
package demo1;
public class Sushu {
// 判断 101-200 之间有多少个素数,并输出所有素数。
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.println(i);
}
}
System.out.println(count);
}
}