首页 > 其他分享 >2022-8-21 每日一题+简单模拟

2022-8-21 每日一题+简单模拟

时间:2022-08-21 12:24:06浏览次数:81  
标签:end 21 int 单词 start 2022 return 一题 MyCalendar

1455. 检查单词是否为句中其他单词的前缀

难度简单

给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。

如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1 。

字符串 s 的 前缀 是 s 的任何前导连续子字符串。

 1 class Solution {
 2     public int isPrefixOfWord(String sentence, String searchWord) {
 3         String[] arr=sentence.split(" ");
 4         int index=1;
 5         for (String s:arr){
 6             if (isPrefix(searchWord,s)){
 7                 return index;
 8             }
 9             index++;
10         }
11         return -1;
12     }
13 
14     public boolean isPrefix(String s,String s1){
15         if (s.length()>s1.length()) return false;
16         int index=0;
17         while (index<s.length()){   
18             if (s.charAt(index)!=s1.charAt(index)) return false;
19             index++;
20         }
21         return true;
22     }
23 }

思路:分割单词在判断。

剑指 Offer II 058. 日程表

难度中等

请实现一个 MyCalendar 类来存放你的日程安排。如果要添加的时间内没有其他安排,则可以存储这个新的日程安排。

MyCalendar 有一个 book(int start, int end)方法。它意味着在 start 到 end 时间内增加一个日程安排,注意,这里的时间是半开区间,即 [start, end), 实数 x 的范围为,  start <= x < end

当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生重复预订。

每次调用 MyCalendar.book方法时,如果可以将日程安排成功添加到日历中而不会导致重复预订,返回 true。否则,返回 false 并且不要将该日程安排添加到日历中。

请按照以下步骤调用 MyCalendar 类: MyCalendar cal = new MyCalendar(); MyCalendar.book(start, end)

 1 class MyCalendar {
 2     List<int[]> list;
 3     public MyCalendar() {
 4         list=new ArrayList<>();
 5     }
 6     
 7     public boolean book(int start, int end) {
 8         for (int[] x:list){
 9             if (conflict(x,start,end)) return false;
10         }
11         list.add(new int[]{start,end});
12         return true;
13     }
14 
15     public boolean conflict(int[] x,int s,int e){
16         if (x[1]<=s||x[0]>=e) return false;
17         return true;
18     }
19 }
20 
21 /**
22  * Your MyCalendar object will be instantiated and called as such:
23  * MyCalendar obj = new MyCalendar();
24  * boolean param_1 = obj.book(start,end);
25  */

思路:暴力解法,Treeset应用,需要一个数据结构能够保持元素排序和支持快速插入,可以用TreeSet 来构建。

学习一下Treeset的函数。first,last,ceiling,floor,lower,up等等。

 

 

 

标签:end,21,int,单词,start,2022,return,一题,MyCalendar
From: https://www.cnblogs.com/benbicao/p/16609779.html

相关文章

  • 《GB8921-2011》PDF下载
    《GB8921-2011磷肥及其复合肥中226镭限量卫生标准》PDF下载《GB8921-2011》简介本标准规定了磷肥及其复合肥(以下合称含磷肥料)中226Ra的限量卫生指标及其相应的采样、......
  • 报告分享|2022年智能汽车云服务:汽车产业智能网联升级
    全文链接:http://tecdat.cn/?p=28277 原文出处:拓端数据部落公众号 报告分享|2022年智能汽车云服务:汽车产业智能网联升级在汽车"新四个现代化"的特定浪潮中,我们的......
  • 8.5-8.21小记
    逸一时误一世了属于是。咕咕咕很久的总结。因为下午就开学了,只能这样写。好题算法大致感悟CF1098E万能欧几里得初见这算法,以后有时间补个学习笔记CF1178G......
  • postgresql使用group by进行数据去重-2022新项目
    一、业务场景数据去重是web开发中经常会遇到的方式之一,数据库操作中有一个关键字distinct主要就是用来做这件事,用来进行去重。比如进行统计查询的时候,可以这样写sel......
  • 《GB5135.21-2011》PDF下载
    《GB5135.21-2011自动喷水灭火系统第21部分:末端试水装置》PDF下载《GB5135.21-2011》简介GB5135的本部分规定了自动喷水灭火系统用末端试水装置的术语和定义、分类、......
  • 2022年8月21日之人生感悟
      有时想想,我的童年挺幸福的,有最喜欢看的书,只要我想看书,妈妈都会给我买,我想吃的都买给我了,每次回家都会做我最爱吃的菜;每次都记得我喜欢吃什么。母亲和姥姥,爷爷,每次不管......
  • 2022年8月21日周六总结(maven install和package的区别未完成)
    最近做了nexus的配置,突然发现maven也很重要,我们平时会在idea用到clear、install、package等,package毫无疑问就是打包jar包了(在maven中定义了),这个打包会把 最近:这里记录......
  • 2022.8.20 线程通信问题与线程池
    7、线程通信问题生产者消费者模式的问题应用场景︰生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库﹐消费者将仓库中产品取走消费﹒如果仓......
  • 2022.8.20 线程状态
    5、线程状态1.线程五大状态: 2.线程方法2.1停止线程案例packagecom.xing.demo03;/***测试stop*1.建议线程正常停止-->利用次数,不建议死循环*2.建......
  • 2022.8.20 线程同步
    6、线程同步1.介绍多个线程操作同一个资源     由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中......