当前位置: 首页 > news >正文

d202546

 

目录

一、罗马字符转数字

 二、二叉树的右视图

三、sql-查询结果的质量和占比


一、罗马字符转数字

 首先把两个字符组成一个数字做一下单独判断

然后就是单个字符转数字

public int romanToInt(String s) {
        int sum = 0;
        char[] ch = s.toCharArray();
        int i = 0;
        while(i < ch.length){
            if(i+1 < ch.length && ch[i] == 'I' && (ch[i+1] == 'V' || ch[i+1] == 'X')){
                sum += getVal("" + ch[i] + ch[i+1]);
                i++;
            } else if(i+1 < ch.length && ch[i] == 'X' && (ch[i+1] == 'L' || ch[i+1] == 'C')){
                sum += getVal("" + ch[i] + ch[i+1]);
                i++;
            } else if(i+1 < ch.length && ch[i] == 'C' && (ch[i+1] == 'D' || ch[i+1] == 'M')){
                sum += getVal("" + ch[i] + ch[i+1]);
                i++;
            } else {
                sum += getVal("" + ch[i]);
            }
            i++;
        }
        return sum;
    }
    public int getVal(String str){
        if(str.equals("I")){
            return 1;
        } else if(str.equals("V")){
            return 5;
        } else if(str.equals("X")){
            return 10;
        } else if(str.equals("L")){
            return 50;
        } else if(str.equals("C")){
            return 100;
        } else if(str.equals("D")){
            return 500;
        } else if(str.equals("M")){
            return 1000;
        } else if(str.equals("IV")){
            return 4;
        } else if(str.equals("IX")){
            return 9;
        } else if(str.equals("XL")){
            return 40;
        } else if(str.equals("XC")){
            return 90;
        } else if(str.equals("CD")){
            return 400;
        } else if(str.equals("CM")){
            return 900;
        }
        return -1;
    }

 二、二叉树的右视图

对二叉树进行层序遍历

将每一层最右边的值进行记录

 public List<Integer> rightSideView(TreeNode root) {
       Queue<TreeNode> queue = new LinkedList<>();
       if(root != null){
        queue.offer(root);
       }
       List<Integer> ret = new ArrayList<>();
       while(!queue.isEmpty()){
            List<Integer> temp = new ArrayList<>();
            int n = queue.size();
            while(n-- != 0){
                TreeNode now = queue.poll();
                temp.add(now.val);
                if(now.left != null){
                    queue.offer(now.left);
                }
                if(now.right != null){
                    queue.offer(now.right);
                }
            }
            ret.add(temp.get(temp.size()-1));
       }
       return ret;
    }

三、sql-查询结果的质量和占比

round(),四舍五入

count 不会统计null的值,这里可以使用if(true,a,b)来进行统计小于3的个数

select query_name,
round(avg(rating/position),2) as 'quality',
round(count(if(rating<3,1,null))*100/count(*),2) as 'poor_query_percentage'
from Queries
group by query_name;

http://www.dtcms.com/a/114861.html

相关文章:

  • Java项目集成大模型(通译千问)
  • Python星球日记 - 第3天:运算符与表达式
  • 内存与显存:从同根生到殊途异路的科技演进
  • 机器学习新范式:Kubernetes + Kubeflow,解锁模型训练与部署的高效密码
  • Word 页眉设置(不同章节不同页眉)
  • 迭代器介绍与使用(四十一)
  • java 正则表达式优化
  • 使用SPSS进行链式中介模型分析
  • ansible可视化自动化平台-semaphore
  • 脑电学习笔记
  • 哈希表(闭散列)的实现
  • 匿名函数自调用
  • Draw.io 全面解析与竞品分析:图表绘制工具的深度对比
  • 这是一份简单优雅的Prompt Engineering教程
  • 25.4.6学习总结
  • C++ 中为什么构造函数不需要实现虚函数,而析构函数需要?
  • 线程同步的学习与应用
  • 设计模式简述(八)中介者模式
  • 从扩展黎曼泽塔函数构造物质和时空的结构-15
  • swift-11-init、deinit、可选链、协议、元类型
  • STM32F103C8T6单片机的起始点:使用GPIO输出点亮我们的第一个小灯(HAL库版本)
  • 【简历全景认知】简历的历史演变与当代定位:从羊皮卷到算法博弈的艺术
  • 设计模式简述(十)责任链模式
  • 请问你怎么看待测试,指导哪些测试的类型,有用过哪些测试方法?
  • Nmap全脚本使用指南!NSE脚本全详细教程!Kali Linux教程!(六)
  • 人脸识别系统(人脸识别、前后端交互、Python项目)
  • 初识数据结构——Java集合框架解析:List与ArrayList的完美结合
  • 如何判断JVM中类和其他类是不是同一个类
  • Window进程监控工具,能自动重启进程和卡死检测
  • 【Linux篇】基础IO - 文件描述符的引入