ali笔试

2023-05-16

题目描述:
输入两个字符串s1, s2, 只能对s1进行一种操作,即可以将字符串中任意一个位置的字符移动到末尾0(1), 为s1转变为s2最少需要多少步。
如 s1= acdk
s2 = dack
s1=acdk -> cdka -> dkac -> dack 总共3import sys
from collections import Counter
def main(sour, tar):
    if len(sour)!=len(tar):
        return -1
    if Counter(sour) != Counter(tar):
        return -1
    n = len(tar)
    count = 0
    j = 0
    for i in range(n):
        if sour[i] == tar[j]:
            count += 1
            j += 1   
    return n - count
if __name__ == "__main__":
    s1 = sys.stdin.readline().strip()
    s2 = sys.stdin.readline().strip()
    res = main(s1, s2)
    print(res)
输入:
第一行为 n个数,
第二行依次每个数的左区间
第二行依次每个数的右区间
如 
2
1, 2
3, 3
说明, 总共有两个数, 其区间为[1,3][2,3]
求n个数中最小值的期望数。
比如上述输入:
1出现的情况,(1,2), (1,3) 概率为2/6
2出现的情况,(2,2), (2,3), (3,2) 概率为3/6
3出现的情况,(3,3) 概率为1/6
所以期望值 = 1*2/6 + 2*3/6 + 3*1/6 

import sys
from collections import Counter
def main(n, res):
    l = res[0]
    r = res[1]
    prob = [0.0 for _ in range(2001)] #>= i 的概率
    prob[1] = 1 # >= 1的概率为1,因为1最小,所以的情况其最小值肯定都>=1
    for i in range(2, 2001):
        sum  = 1
        for j in range(n): # n个区间
            if i < l[j]: # i 小于某个区间的左端点,说明这个区间的所有值都可以取到,为1,跳过就好
                continue
            elif i > r[j]: # i大于某个区间的右端点,说明i在此区间取不到,所以概率为0
                sum = 0
                break
            else:
                sum *= (r[j] - i +1)/ (r[j] - l[j]+1) # 当前这个区间可以取到值的概率,因为独立,所以各个区间的概率可以相乘
            
        prob[i] = sum

    res = 0.0
    for i in range(1, 2000): #计算总的期望
        res += i * (prob[i] - prob[i+1]) #prob[i]为 最小值>=i 的情况, prob[i+1] 为最小值 >= i+1的情况
    return res
if __name__ == "__main__":
    n = int(sys.stdin.readline().strip())
    res = []
    for i in range(n):
        tmp = sys.stdin.readline().strip()
        tmp = [int(x) for x in tmp.split()]
        res.append(tmp)

    res = main(n, res)
    print(res)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ali笔试 的相关文章

  • Vim 自动补全插件 YouCompleteMe 安装与配置

    本文系转载文章 xff0c 原文链接 http howiefh github io 2015 05 22 vim install youcompleteme plugin Contents 1 概述 2 安装 2 1 完全安装 2 2 Ub
  • Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

    转载请注明出处 xff1a http kyang cc 栈是什么 xff1f 栈有什么作用 xff1f 首先 xff0c 栈 stack 是一种串列形式的 数据结构 这种数据结构的特点是 后入先出 LIFO Last In First Ou
  • SD-WAN 到底是什么?

    转载请注明出处 xff1a http kyang cc In a nutshell SD WAN Virtualizes the networkEnables a secure overlaySimplifies services deli
  • SDN, SD-WAN, NFV, VNF: What Is All This?

    本文转载至 xff1a http www velocloud com sd wan blog sdn sd wan nfv vnf Inscrutable alphabet soup Even the fully expanded term
  • Top-down Design简介

    自顶向下 xff0c 逐步求精的方法 在英文中称作Top down Design xff0c 是一种计算机编程使用的算法思想 xff0c 顾名思义 xff0c 这种方法的思想就是对现在遇到的复杂或者抽象化的问题 xff0c 进行纵向深入分解
  • The Advantages of SD‐WAN over Traditional WAN

    转载请注明出处 xff1a http kyang cc An SD WAN has several advantages over a traditional WAN 重点内容 Simplified WAN Rapid deployment
  • 玩转 SSL 证书

    Introduction Openssl 是一个很牛逼的工具 xff0c 基本能搞定 PKI amp HTTPS 证书相关的事情 这篇博文归类了一堆常用的命令 xff0c 全部都是关于 key amp csr amp crt 本文分成两部分
  • linux简易书单

    1 Linux程序设计 xff08 第4版 xff09 万千读者推荐的Linux经典入门书 程序设计实战型图书 xff0c 以简单易懂 内容全面和示例丰富而受到广泛好评 如果你没有Linux基础 xff0c 可以先读这本 话说回来 xff0
  • 数字图像处理的技术方法和应用

    所谓数字图像处理 xff0c 是指将图像信号转换成数字信号并利用计算机对其进行处理的过程 20 世纪 50 年代 xff0c 电子计算机已经发展到一定水平 xff0c 人们开始利用计算机来处理图形和图像信息 xff0c 这便是早期的图像处理
  • hadoop安装完后打开网页http://localhost:50070/ 没反应

    在hadoop安装完后 xff0c 依次执行hadoop namenode format xff0c start dfs sh xff0c start yarn sh 之后 打开浏览器 输入 http localhost 50070 无反应
  • 关于CSDN代码段的背景颜色修改

    当我第一次去在CSDN中写代码时会发现自己的是用的 代码段 是如图下所示这种黑色的背景 那么自己想要去修改因该如何设置 1 鼠标悬停到头像上 2 点击内容管理标签 3 点击博客设置 4 在代码片样式中选择自己喜欢的样式就可以了
  • 利用VSPD、串口调试助手、Keil做串口调试

    下面详细介绍下如何用虚拟串口调试串口发送接收程序 需要用到三个软件 xff1a KEIL VSPD XP5 xff08 virtual serial ports driver xp5 1虚拟串口软件 xff09 串口调试助手 xff08 个
  • 基于机器学习的雷达信号分选和目标识别(论文阅读学习记录—持续记录)

    机器学习在雷达信号分选技术上的应用包括信号分离 确定脉冲参数 形成单部雷达脉冲序列 xff0c 然后针对雷达目标识别进行分类并划分威胁程度等 在一维距离像识别过程中包括去噪和雷达目标型号识别 该论文 xff08 学习内容 xff09 重点研
  • CMake Error: The following variables...set to NOTFOUND

    今天在编译开源OpenVslam时 xff0c 在最后阶段出现如下问题 说是DBOW2的库招不到 查看了dbow2都是正常安装的 xff0c 但是就是出问题 然后我就找到了对应的cmakelist txt文件 xff0c 将LIBS地址打印
  • PCL库调试过程中,显示当前不会命中断点,还没有为该文档加载任何符合

    最近在读PCL库中NDT源码 xff0c 搞了一个vs2019的工程将NDT部分跑了起来 xff0c 想通过打断点的方式进入源码中一步步走读代码 但是有些部分的源码可以通过断点的方式进 hpp文件 xff0c 有些确不能 比如kdtree
  • 相机矩阵(camera matrix)

    本博文主要介绍camera的参数矩阵 目录 相机小孔模型 相机矩阵 xff08 内参 xff09 相机矩阵 xff08 Intrinsic matrix xff09 图像坐标系 相机的外参矩阵 xff08 extrinsic matrix

随机推荐