每日练习-20181210

一、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

IDName
1a
2b
3b
4a
5c
6c

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

IDName
1a
2b
5c

请写出 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 + "个素数!");
  }  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值