Java每日一练(20230411)

news2024/12/23 4:25:51

目录

1. 同构字符串  🌟

2. 随机字符串  🌟

3. 交错字符串  🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 同构字符串

给定两个字符串 和 t,判断它们是否是同构的。

如果 中的字符可以按某种映射关系替换得到 ,那么这两个字符串是同构的。

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

示例 1:

输入:s = "egg", t = "add"
输出:true

示例 2:

输入:s = "foo", t = "bar"
输出:false

示例 3:

输入:s = "paper", t = "title"
输出:true

提示:

  • 可以假设 和 长度相同。

出处:

https://edu.csdn.net/practice/25232849

代码:

import java.util.*;
public class isIsomorphic {
    public static class Solution {
        public boolean isIsomorphic(String s, String t) {
            if (s.length() != t.length()) {
                return false;
            }
            Map<Character, Character> somorphicMap = new HashMap<>();
            for (int i = 0; i < s.length(); i++) {
                char key = s.charAt(i);
                char value = t.charAt(i);
                if (somorphicMap.get(key) != null) {
                    if (somorphicMap.get(key) != value) {
                        return false;
                    }
                } else {
                    if (somorphicMap.containsValue(value)) {
                        return false;
                    }
                    somorphicMap.put(s.charAt(i), t.charAt(i));
                }
            }
            return true;
        }
    }
    public static void main(String[] args) {
        Solution sol = new Solution();
        String s = "egg", t = "add";
        System.out.println(sol.isIsomorphic(s, t));
        s = "foo"; t = "bar";
        System.out.println(sol.isIsomorphic(s, t));
        s = "paper"; t = "title";
        System.out.println(sol.isIsomorphic(s, t));
    }
}

输出:

true
false
true


2. 随机字符串

生成一个由大写字母和数字组成的6位随机字符串,并且字符串不重复

出处:

https://edu.csdn.net/practice/25232848

代码:

public class generate {
    public static class Solution {
        public static char[] generate() {
        char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
            'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        boolean[] flags = new boolean[letters.length];
        char[] chs = new char[6];
        for (int i = 0; i < chs.length; i++) {
          int index;
          do {
            index = (int) (Math.random() * (letters.length));
          } while (flags[index]);
          chs[i] = letters[index];
          flags[index] = true;
        }
        return chs;
      }
    }
    public static void main(String[] args) {
        Solution s = new Solution();
        for (int i = 0; i < 10; i++)
            System.out.println(s.generate());
    }
}

输出: (以下内容随机产生)

NARUCE
YS6KCL
JEUF3S
F54XPV
U1WJPH
U1VFCZ
1M92CN
67IE5M
VZ7QGM
SR9IFE


3. 交错字符串

给定三个字符串 s1s2s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。

两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:

  • s = s1 + s2 + ... + sn
  • t = t1 + t2 + ... + tm
  • |n - m| <= 1
  • 交错 是 s1 + t1 + s2 + t2 + s3 + t3 + ... 或者 t1 + s1 + t2 + s2 + t3 + s3 + ...

提示:a + b 意味着字符串 a 和 b 连接。

示例 1:

输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"
输出:true

示例 2:

输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc"
输出:false

示例 3:

输入:s1 = "", s2 = "", s3 = ""
输出:true

提示:

  • 0 <= s1.length, s2.length <= 100
  • 0 <= s3.length <= 200
  • s1s2、和 s3 都由小写英文字母组成

出处:

https://edu.csdn.net/practice/25240960

代码:

import java.util.*;
public class isInterleave {
    public static class Solution {
        public boolean isInterleave(String s1, String s2, String s3) {
            if ((s1.length() + s2.length()) != s3.length())
                return false;
            boolean[][] dp = new boolean[s2.length() + 1][s1.length() + 1];
            dp[0][0] = true;
            for (int i = 1; i <= s1.length(); i++) {
                dp[0][i] = dp[0][i - 1] && s1.charAt(i - 1) == s3.charAt(i - 1) ? true : false;
            }
            for (int i = 1; i <= s2.length(); i++) {
                dp[i][0] = dp[i - 1][0] && s2.charAt(i - 1) == s3.charAt(i - 1) ? true : false;
            }
            for (int i = 1; i < dp.length; i++) {
                for (int j = 1; j < dp[0].length; j++) {
                    dp[i][j] = (dp[i][j - 1] && s1.charAt(j - 1) == s3.charAt(i + j - 1))
                            || (dp[i - 1][j] && s2.charAt(i - 1) == s3.charAt(i + j - 1));
                }
            }
            return dp[s2.length()][s1.length()];
        }
    }
    public static void main(String[] args) {
        Solution s = new Solution();
        String s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac";
        System.out.println(s.isInterleave(s1, s2, s3));
        s1 = "aabcc"; s2 = "dbbca"; s3 = "aadbbbaccc";
        System.out.println(s.isInterleave(s1, s2, s3));
        s1 = ""; s2 = ""; s3 = "";
        System.out.println(s.isInterleave(s1, s2, s3));
    }
}

输出:

true
false
true


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/ 

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

京东技术专家首推:Spring微服务架构设计,GitHub星标128K

前言 本书提供了实现大型响应式微服务的实用方法和指导原则&#xff0c;并通过示例全面 讲解如何构建微服务。本书深入介绍了Spring Boot、Spring Cloud、 Docker、Mesos和Marathon&#xff0c;还会教授如何用Spring Boot部署自治服务&#xff0c;而 无须使用重量级应用服务器…

SAP开发环境ABAP的搭建(客户端和服务器),Developer Key和AccessKey的绕过方法

目录 一.前言 二.客户端GUI安装 1.下载好SAP GUI 750 2.解压后找到SAPGUISetup.exe 3.安装 4.安装完整教程 三.服务端搭建 1.安装VmWare虚拟机 2.下载虚拟机镜像 3.打开虚拟机 4.调整内存大小 5.启动虚拟机 四.创建程序 1.创建包 2.创建程序 3.Developer Key和A…

C语言——变参函数

一、定义 一般函数的参数列表是固定的&#xff0c;所以在调用时传入的实参的个数和格式必须和实参匹配&#xff1b;在函数式中&#xff0c;不需要关心实参&#xff0c;直接调用形参即可。 变参函数&#xff0c;就是参数的个数及类型都不确定的函数&#xff0c;常见变参函数如pr…

jenkins的slave节点构建java失败

背景&#xff1a; 主节点构建没问题的&#xff0c;为了缓解压力增加了个从节点&#xff0c;但是发现同个应用分配到从节点构建时报错&#xff0c;主节点构建就正常。但是我的从节点是把主节点克隆过去的&#xff0c; 理论环境配置java——maven啥都是一模一样才是。不理解。 …

Markdown基础语法:快速入门指南

什么是Markdown Markdown是一种轻量级的标记语言&#xff0c;它的目标是让文本内容更加易读、易写和易于转换成HTML等格式。Markdown语法简单、直观&#xff0c;适合用于写作、博客、笔记、文档等场景。Markdown最初由John Gruber和Aaron Swartz于2004年创建&#xff0c;现在已…

从手动实现web开发到借助IDEA实现web开发的具体流程分析,详细介绍webapp的目录结构和web站点的欢迎页面的设置

使用Tomcat手动实现WEB开发 实现静态的web应用(没有java小程序) 第一步&#xff1a;找到CATALINA_HOME\webapps目录(Tomcat服务器要求所有的web应用都要放到webapps目录下, 这样它才能找到你的web应用) 第二步&#xff1a;在CATALINA_HOME\webapps目录下新建一个oa的子目录(…

闭环控制里的采样周期和执行周期

运动控制对系统的实时性要求都非常高。所以大家可以看到运动控制总线的刷新周期越来越快,越来越短。今天我们讨论下实时性不高的总线会带来哪些问题和挑战,以及这种大延时总线如何解决实时性问题,运动控制实时性问题还可以参看下面的文章博客: 随动控制之跟随给定和跟随反…

Python一行命令搭建HTTP服务器并外网访问【内网穿透】

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章&#xff1a;【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

20从零开始学Java之牛闪闪的for循环是怎么用的?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中&#xff0c;壹哥给大家讲解了顺序结构、分支结构&#xff0c;接下来我们就来学习Java…

面试篇-Java输入输出三兄弟大比拼:IO、NIO、AIO对比分析

1、Java I/O发展史 Java IO&#xff08;Input/Output&#xff09;是Java语言中用于读写数据的API&#xff0c;它提供了一系列类和接口&#xff0c;用于读取和写入各种类型的数据。下面是Java IO发展史的简要介绍&#xff1a; JDK 1.0&#xff08;1996年&#…

Android进阶宝典—事件冲突的解决方法

相信伙伴们在日常的开发工作中&#xff0c;一定会遇到事件冲突的问题&#xff0c;e.g. 一个页面当手指滑动的时候&#xff0c;会翻到下一页&#xff1b;点击的时候&#xff0c;需要响应页面中的元素点击事件&#xff0c;这个时候如果没有处理滑动事件&#xff0c;可能遇到的问题…

c++的多态

目录 1、多态 1.1多态的构成条件 1.2多态的好处 2、虚函数 2.1虚函数重写 2.2虚函数的默认参数 2.3纯虚函数重写 2.4抽象类 2.5虚析构&#xff0c;纯虚析构重写 3、重载、覆盖(重写)、隐藏(重定义)的对比 ​编辑 多态是c面向对象三大特性之一 程序调用函数时&#…

人人都是数据分析师-数据分析之数据图表可视化(下)

当前的BI报表、运营同学的汇报报告中数据图表大多为 表格、折线图、柱状图和饼图&#xff0c;但是实际上还有很多具有代表性的可视化图表&#xff0c;因此将对常见的可视化图表进行介绍&#xff0c;希望这些图表可视化方法能够更好的提供数据的可用性。 人人都是数据分析师-数…

QT网络通信-服务器(一)

目录 1、简介 2 、TCP通信流程 3、基于TCP通信所需要的类 4、QT端设计 4.1项目建立 4.2 TCP网络程序设计 4.2.1 QT界面设计 4.2.2 UI布局 4.2.3 控件重命名 5、widget.h 6、widget.c 1、简介 网络有TCP和UDP。本文主要通过QT完成TCP网络设计&#xff0c;通过ESP8266与单片…

JavaEE简单实例——一些基本操作

在配置类中配置页面解析器 之前我们使用页面解析器是在XML配置文件中使用的&#xff0c;但是当我们试用了纯注解式的整合之后&#xff0c;我们没有了配置文件&#xff0c;要如何去将之前我们在配置文件中编写的前端控制器&#xff0c;以及静态资源的释放这些功能配置添加到项目…

二叉排序树(二叉查找树)基本操作_20230417

二叉排序树&#xff08;二叉查找树&#xff09;基本操作_20230417 前言 二叉排序树首先是一颗二叉树&#xff0c;它不同于常规二叉树的地方在于&#xff0c;如果左子树不为空&#xff0c;那么左子树上所有结点的值都不大于根节点的值&#xff0c;如果右子树不为空&#xff0c…

从GPT-4、文心一言再到Copilot,AIGC卷出新赛道?

业内人都知道&#xff0c;上一周是戏剧性的&#xff0c;每一天&#xff0c;都是颠覆各个行业&#xff0c;不断 AI 化的新闻。 OpenAI发布GPT-4、百度发布文心一言、微软发布Microsoft 365 Copilot 三重buff叠加&#xff0c;打工人的命运可以说是跌宕起伏&#xff0c;命途多舛了…

pmp证书报考流程+pmp备考+pmp学习干货+pmp指南汇总

2023年共有4次PMP考试&#xff0c;分别是3月、5月、8月、11月&#xff0c;由于3月份考试不开放新报名&#xff0c;所以第一次备考PMP的同学可以选择参加5月份考试。那么&#xff0c;现在备考5月份PMP考试还来得及吗&#xff1f; 现在开始备考5月PMP考试&#xff0c;时间是非常…

Scrum

目录 1、Scrum&#xff1a; 敏捷里的3355&#xff1a; 什么是Scrum&#xff1a; Scrum的优点&#xff1a; Scrum的理论&#xff1a; Scrum的三大支柱&#xff1a; 透明性&#xff1a; 检视&#xff1a; 调整&#xff1a; 2、Scrum的角色简介&#xff1a; Scrum各角色…

【数据结构学习笔记 之 栈和队列】——上

前言&#xff1a;栈和队列是常用的数据结构之一&#xff0c;本文主要介绍有关栈的基本特性以及基本操作和一些经典的OJ题目&#xff0c;关于队列的介绍放到下篇。那么话不多说&#xff0c;让我们开始吧。 一、栈的基本知识 1. 栈的基本概念 栈是一种特殊的线性表&#xff0c…