【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)

一、题目描述

复制代码
对于给定的字符串 s 和 t ,检查 s 中的所有字符是否都在 t 中出现。

(一)输入描述

复制代码
第一行输入一个长度为 1 ≤ len(s) ≤ 200、仅由小写字母组成的字符串 s。
第二行输入一个长度为 1 ≤ len(t) ≤ 200、 仅由小写字母组成的字符串 t。

(二)输出描述

复制代码
如果 s 中的所有字符都在 t 中出现,则输出 true,否则输出 false。

(三)示例

java 复制代码
输入:bc
     abc
输出:true

二、题目解答

(一)解题思路

1.使用HashMap统计字符串 s 中字符,如字符 a 出现则利用put方法将键值对(a,1)存入 map 中(注:a 重复出现存入的 value 值仍为1)。

2.使用HashMap的 put 方法统计 t 中的字符是否在 s 中出现,假设字符 a 在 t 中 出现,则将键值对(a,map.getOrDefault(a, 0))存入。

3.遍历 map.value() ,如存在为1的 value ,则代表 s 中存在 t 中没有的字符,则输出 f ,否则输出 t。

(二)代码实现

java 复制代码
import java.util.*;
public class Main {
	public static void main(String[] args){
		//读取字符串S和t
		Scanner in = new Scanner(System.in);
		String s = null;
		String t = null;
		
		s = in.nextLine();
		t = in.nextLine();
		
		//将s中的字符存入HashMap中
		Map<Character,Integer> map = new HashMap<>();
		for(Character c : s.toCharArray()){
			map.put(c, 1);
		}
		//统计t中的字符是否在s中出现
		for(Character c : t.toCharArray()){
			map.put(c, map.getOrDefault(c, 0)-1);
		}
		//遍历HashMap.value(), 如存在1则表明s中存在t中没有的字符
		for(int a : map.values()){
			if(a == 1){
				System.out.print("false");
				System.exit(0);//此处不能使用break;因为break只会终止循环,不会终止程序。
			}
		}
		System.out.print("true");
	}
}
相关推荐
cj6341181508 分钟前
【MySQL】mysqldump使用方法
java·后端
JIngJaneIL10 分钟前
停车场管理|停车预约管理|基于Springboot的停车场管理系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·停车场管理系统
lly20240612 分钟前
ASP Folder:深入解析其功能与使用技巧
开发语言
杰克尼41 分钟前
二分查找为什么总是写错
java·数据结构·算法
雪域迷影43 分钟前
Go语言中通过get请求获取api.open-meteo.com网站的天气数据
开发语言·后端·http·golang·get
半旧夜夏2 小时前
【分布式缓存】Redis持久化和集群部署攻略
java·运维·redis·分布式·缓存
短视频矩阵源码定制3 小时前
矩阵系统源码推荐:技术架构与功能完备性深度解析
java·人工智能·矩阵·架构
ysdysyn3 小时前
C# 进程管理实战:检查与启动EXE程序的完整指南
开发语言·c#
Eiceblue3 小时前
使用 Java 将 Excel 工作表转换为 CSV 格式
java·intellij-idea·excel·myeclipse
漂流幻境3 小时前
IntelliJ IDEA的Terminal中执行ping命令时遇到的“No route to host“问题
java·ide·intellij-idea