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 + " "); // 换行,用count计数,每五个数换行 if (count % 5 == 0) { System.out.print(" "); } } } } }
运行结果:
【分析】首先我们先写一个识别素数的函数,然后通过一个for循环进行排查。
总结:
今天中我们主要学习了如何对字符串进行分析,我以前在java中使用都是spite进行分词;SQL语句部分,我们今天学习了嵌套查询;最后的排查素数,
主要就是你如何去思考问题,怎么一步一步解决问题。