算法笔试模拟题精解之“Password”

简介: 可以用枚举法解决这个问题。

在线编程介绍

阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding

本文为大家介绍其中的 第135题:Password 的题目解析,具体如下:

题目描述

题目等级:容易
知识点:字符串、枚举

查看题目:Password
Tom在期末考完试以后学习了Python语言,他发现Python语言确实是简洁又强大,在他学完字符串以后,他写了一个随机生成密码的python文件。

原理是这样的,输入一个字符串s,然后系统会随机将这个s重新任意排序,然后又生成两个字符串s1和s2,并拼接起来最终生成随机密码str = s1 + s + s2。

现在Tom有一个问题要问你,每次给你两个字符串,一个是s(表示输入的字符串),一个是str(表示产生的随机字符串),问这两个字符串是否符合上述要求的原理?如果符合输出YES,否则输出NO。1<=s,str<=100

输入两个字符串,一个是s,表示输入的字符串,一个是str,表示产生的随机字符串(1<=s,str<=100)

输出内容为一行字符串,如果符合题意中的原理输出"YES",否则输出"NO"。

示例1
输入:
"abc"
"xxxcabyyy"
输出:
"YES"

解题方法: 枚举法

解题过程中用到的参数列出:
char[] s1 : 密码字符串的字符数组格式
char[] str1 : 随机生成字符串的数组格式
int[] S : 密码字符串中每个字符出现的个数。(i : 0-25)
int[] temp : S数组的备份,用于恢复S(使用clone方法获得)
count : 表示成功匹配到的密码字符的个数

计算过程:

  1. 将提供的字符串转换为字符数组s1和str1
  2. 用一个长度为26的int型数组对密码中各个字符出现的次数进行统计。
  3. 从第一个字符开始,对之后的挨个序列进行判断

(1)如果 s1 中有这个字符, 则在 S 中将这个字符的个数 减1 (减了之后判断该字符个数是否小于0),同时将 count+1

若减完后S中对应字符个数小于0,则表示该序列与s1 不匹配,则将count重置为0, 并使用 tempS 进行重置, 然后直接跳到下一个字符进行判断。

(2)如果从某个字符 (str1[i]) 开始之后的一段序列的值全部为密码字符序列中的值(即count的值 = s1中字符的个数),则代表这个就是密码,可以直接输出"YES"了

(3)如果对整个str1遍历一遍后仍找不到与s1匹配的序列, 则表示str1中没有密码, 则输出"NO"

特殊情况: 如果随机字符串str的长度小于密码字符串s的长度, 则肯定无法匹配成功, 这个时候就直接返回"NO"

时间复杂度: O(n^2)
空间复杂度: O(n)

看完之后是不是有了想法了呢,快来练练手吧>>查看题目:Password

720-150.png

相关文章
|
8月前
|
算法 搜索推荐 Java
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
70 0
|
8月前
|
编解码 算法 前端开发
往年 | 大疆雷达算法校招笔试题目解析
往年 | 大疆雷达算法校招笔试题目解析
515 1
|
算法
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
97 0
|
算法 网络协议
骚戴独家笔试---算法篇4
骚戴独家笔试---算法篇4
65 1
|
存储 算法
骚戴独家笔试---算法篇3
骚戴独家笔试---算法篇3
210 0
骚戴独家笔试---算法篇3
|
搜索推荐
7大排序算法-- 堆排 快速排序 --精解(下)
7大排序算法-- 堆排 快速排序 --精解(下)
90 0
|
搜索推荐
7大排序算法-- 堆排 快速排序 --精解(上)
7大排序算法-- 堆排 快速排序 --精解
59 0
|
搜索推荐 算法
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
139 0
|
存储 搜索推荐
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(上)
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解
91 0
|
算法 Serverless 测试技术
骚戴独家笔试---算法篇5
骚戴独家笔试---算法篇5
63 0

热门文章

最新文章