目录
实现一个算法来识别一个字符串 str2str2 是否是另一个字符串 str1str1 的排列。排列的解释如下:如果将 str1 的字符拆分开,重新排列后再拼接起来,能够得到 str2 ,那么就说字符串 str2 是字符串 str1 的排列。(不忽略大小写)
如果 str2 字符串是 str1 字符串的排列,则输出 YES;如果 str2 字符串不是 str1 字符串的排列,则输出 NO;
输入描述
第一行为字符串str1;
第二行为字符串str2;
字符串长度均不超过 100。
输出描述;
输出一行,如果 str2 字符串是 str1 字符串的排列,则输出 YES;
如果 str2 字符串不是 str1 字符串的排列,则输出 NO;
输入输出样例
示例
输入
acb
bac
输出
YES
运行限制
最大运行时间:1s
最大运行内存: 256M
-
-
- import java.awt.geom.Arc2D;
- import java.util.Scanner;
-
- public class Main {
- static int[] c1=new int[26],c2=new int[26];
- static int[] c3=new int[26],c4=new int[26];
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String s=sc.next();
- String t=sc.next();
- for(int i=0;i
- char c=s.charAt(i);
- //A65 a97小写的更大
- if(c>'Z') c2[c-'a']++;
- else c1[c-'A']++;
- }
- for(int i=0;i
- char c=t.charAt(i);
- //A65 a97小写的更大
- if(c>'Z') c4[c-'a']++;
- else c3[c-'A']++;
- }
- for(int i=0;i<26;i++) {
- if(c2[i]!=c4[i]||c1[i]!=c3[i]) {
- System.out.println("NO");
- return;
- }
- }
- System.out.println("YES");
- }
- }
方法二(排列):
-
- import java.util.Arrays;
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- char[] s=sc.next().toCharArray();
- char[] t=sc.next().toCharArray();
- Arrays.sort(s);
- Arrays.sort(t);
- if(s.length!=t.length) {
- System.out.println("NO");
- return;
- }
- for(int i=0;i
- if(s[i]!=t[i]) {
- System.out.println("NO");
- return;
- }
- }
- System.out.println("YES");
- }
- }
方法3(越来越短)
-
- import java.util.Arrays;
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- char[] s=sc.next().toCharArray();
- char[] t=sc.next().toCharArray();
- Arrays.sort(s);
- Arrays.sort(t);
- String s1=new String(s);
- String t1=new String(t);
- System.out.println(s1.equals(t1)?"YES":"NO");
- }
- }
压缩字符串
题目描述
实现一个算法来压缩一个字符串。压缩的要求如下:
需要判断压缩能不能节省空间,仅在压缩后字符串比原字符串长度更短时进行压缩。
压缩的格式是将连续相同字符替换为字符 + 数字形式,例如 "AAABCCDDDD" 变为 "A3BC2D4"。
输入描述
输入一行字符串,长度不超过 500.
输出描述
输出一行。若输入的字符串可压缩,则输出压缩后的字符串,否则输出 NO。
输入输出样例
示例
输入
AAABCCDDDD
输出
A3BC2D4
运行限制
最大运行时间:1s
最大运行内存: 256M
代码
-
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- char[] s=sc.next().toCharArray();
- boolean f=false;
- for(int i=1;i
- if(s[i]==s[i-1]) f=true;
- }
- if(!f) {
- System.out.println("NO");
- return;
- }
- //Java的String不可变
- StringBuffer sb = new StringBuffer();
- for(int i=0,j=0;i
- while(j+1
1]==s[i]) j++; - int len=j-i+1;
- sb.append(s[i]);
- if(len>1) sb.append(len);
- i=j+1;
- }
- System.out.println(sb);
- }
- }
分发饼干
题目描述
实现一个算法找到使最多孩子得到满足的分发饼干方法。介绍如下:
家长要将饼干分发给孩子,每个孩子有一个表示胃口的值,每个饼干有一个表示尺寸的值。如果饼干的尺寸与孩子的胃口相等或大于胃口,则将这个饼干分发给这个孩子,孩子能得到满足。
对于给定孩子及饼干的数组,需要将饼干分发给孩子,使最多的孩子得到满足。
例如孩子数组为 [1, 2, 3],饼干数组为 [1, 1],则将尺寸为 1 的饼干分发给胃口为 1 的孩子,这个孩子将得到满足,而另外的两个孩子无法得到满足。那么得到满足的孩子个数为 1 个。
输入描述
第一行输入两个整数 N,M (1 <= N,M <= 1000)。N 表示孩子数量,M 表示饼干数量。
第二行输入孩子数组 A,Ai
表示第 i 个孩子胃口。
第三行输入饼干数组 B,Bi
表示第 i 块饼干的尺寸。
输出描述
输出一行,为得到满足的孩子个数。
输入输出样例
示例
输入
3 2
1 2 3
1 1
输出
1
运行限制
最大运行时间:1s
最大运行内存: 256M
思路分析:
饼干是不是想尽量喂饱需求更大的孩子?
能不能用当前最大的饼干去喂需求量最大的孩子?如果最大的饼干不能喂需求最大的孩子说明该孩子不能吃饱
-
-
- import java.util.Arrays;
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n=sc.nextInt();
- int m=sc.nextInt();
- //a孩子 b饼干
- int[] a=new int[n];
- int[] b=new int[m];
-
-
相关阅读:
Speedoffice(excel)如何使用COUNTIF函数进行条件计数
Webmin远程命令执行漏洞复现报告
[论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
【python】邮局选址问题(中位数策略)
tomcat中Pipeline-Valve解析
C++ day3
二分答案裸题(加一点鸽巢原理)
FLOPS
streamlit+ndraw进行可视化训练深度学习模型
直方图,条形图,饼图
-
原文地址:https://blog.csdn.net/qq_58631644/article/details/128168626
-
最新文章
-
【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
Halo插件:支持GitHub的图床附件策略
电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
软件更好写之后口碑会更重要
大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
Java标签跳转:一个鲜为人知但却很实用的小技巧
多智能体系统论文速读