当前位置: 首页 > news >正文

怎么下载别人网站模板个人博客搭建

怎么下载别人网站模板,个人博客搭建,知乎 wordpress 响应,网站建设用语01.01、[简单] 判定字符是否唯一 1、题目描述 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 在这一题中,我们的任务是判断一个字符串 s 中的所有字符是否全都不同。我们将讨论两种不同的方法来解决这个问题,并详细解释每种方法…

01.01、[简单] 判定字符是否唯一

1、题目描述

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

在这一题中,我们的任务是判断一个字符串 s 中的所有字符是否全都不同。我们将讨论两种不同的方法来解决这个问题,并详细解释每种方法的实现过程。

2、方法一:使用哈希表计数

2.1、思路解析

我们可以利用一个哈希表(数组)来记录字符串中每个字符的出现次数。具体步骤如下:

  1. 字符数判断:如果字符串的长度超过 26,那么肯定有重复字符,因为只有 26 个小写字母。
  2. 哈希表初始化:创建一个长度为 26 的数组 hash,用于记录每个字符的出现次数。
  3. 遍历字符串:对于字符串中的每个字符,将对应的哈希表位置加 1。
  4. 重复字符检测:在遍历过程中,如果某个字符的出现次数大于 1,直接返回 false
  5. 返回结果:遍历结束后,如果没有发现重复字符,返回 true
2.2、代码实现
class Solution {
public:bool isUnique(string astr) {// 如果字符串长度超过 26,必然有重复字符if (astr.size() > 26) {return false;}// 初始化一个哈希表,长度为 26,对应 26 个字母int hash[26] = {0};// 遍历字符串中的每个字符for (const auto& ch : astr) {// 将字符转换为相应的索引位置hash[ch - 'a']++;// 如果某个字符的计数大于 1,则返回 falseif (hash[ch - 'a'] > 1) {return false;}}// 如果没有发现重复字符,返回 truereturn true;}
};
2.3、代码详解
  • 首先检查字符串长度。如果长度超过 26,立即返回 false,因为小写字母只有 26 个,无法保证全部字符唯一。
  • 初始化一个长度为 26 的整型数组 hash,用于记录每个字母的出现次数。
  • 使用范围循环遍历字符串中的每个字符。
  • 计算当前字符在 hash 数组中的索引,并将其对应的值加 1。如果某个字符的计数大于 1,表示该字符重复,立即返回 false
  • 遍历结束后,如果没有重复字符,则返回 true

3、方法二:使用位图优化

3.1、思路解析

第二种方法使用了位图(bit vector)来优化空间复杂度。这种方法的核心思想是使用一个整数的位来表示字符是否出现过。具体步骤如下:

  1. 字符数判断:与方法一相同,首先判断字符串长度是否超过 26。
  2. 位图初始化:使用一个整数 bitMap 来表示字符出现情况,初始值为 0。
  3. 遍历字符串:对于字符串中的每个字符,检查 bitMap 中相应的位置是否已经设置。
  4. 重复字符检测:如果 bitMap 中相应的位置已经设置过,返回 false。否则,将该位置设置为 1。
  5. 返回结果:遍历结束后,如果没有发现重复字符,返回 true
3.2、代码实现
class Solution {
public:bool isUnique(string astr) {// 利用鸽巢原理来做的优化,如果字符串长度超过 26,必然有重复字符if (astr.size() > 26)return false;// 使用位图(bit vector)来记录字符出现情况int bitMap = 0;// 遍历字符串中的每个字符for (const auto& ch : astr) {int i = ch - 'a'; // 将字符转换为相应的位位置// 判断当前字符是否已经在 bitMap 中出现过if (((bitMap >> i) & 1) == 1)return false; // 如果已出现,返回 false// 将当前字符加入到 bitMap 中bitMap |= 1 << i;}// 如果没有发现重复字符,返回 truereturn true;}
};
3.3、代码详解
  • 同样首先检查字符串长度。如果长度超过 26,直接返回 false
  • 初始化一个整型变量 bitMap,初始值为 0,用于记录字符的出现情况。
  • 遍历字符串中的每个字符。计算当前字符在 bitMap 中对应的位位置。
  • 检查 bitMap 中相应的位是否已经为 1。如果为 1,表示该字符已出现过,返回 false。如果当前字符没有出现过,将对应的位设置为 1。
  • 遍历结束后,如果没有重复字符,返回 true

4、总结

这两种方法都可以有效地判断一个字符串中的字符是否全都不同。方法一使用了哈希表,代码直观易懂,而方法二使用了位图优化,节省了空间。如果字符串长度超过 26,直接返回 false,因为小写字母只有 26 个,因此这是一种基于鸽巢原理的优化。选择哪种方法取决于具体的需求和优化目标。

http://www.bjxfkj.com.cn/article/106666.html

相关文章:

  • 网站作业成品脱发严重是什么原因引起的
  • lnmp用端口做网站seo网站推广服务
  • 做网站开发想转行做医药销售关键词优化快排
  • 已建设英文网站的政府部门seo都用在哪些网站
  • 深圳网站建设lxhd百度竞价排名价格查询
  • 别人给公司做的网站字体侵权吗新闻今日头条最新消息
  • 做策划需要进的网站北京seo培训
  • 网站如何301网络营销的成功案例分析
  • asp转换手机网站线上推广宣传方式有哪些
  • 企业网站系统手机版西安网站制作
  • 锦州制作网站公司世界500强企业
  • 一级a做爰片免费网站短视频seo案例分析100例
  • 自己如何建设网站北京做网页的公司
  • 长春网站建设首选网诚传媒常用的seo网站优化排名
  • 承德网站制作加盟清远网站seo
  • 网站抬头怎么做营销企业
  • 网站空间的控制面板首页优化 seo
  • 企业平台网站制作自动点击器免费下载
  • 网络诈骗做网站 维护百度投诉电话
  • 合肥网站建设费用网页设计网站建设
  • 重庆垫江网站建设日照网络推广公司
  • 什么网站做论坛签名中国万网域名注册官网
  • 东莞网站建设备案企业广告宣传
  • 网站页面太多怎么做网站地图百度关键词查询网站
  • 网站主机设置方法推广网站怎么制作
  • 优的网站建设职业技能培训学校
  • 哪里找网站建设靠谱 知乎市场营销公司
  • 公司的网站如何建设aso优化注意什么
  • 南京做网站哪家好沈阳seo网站推广
  • 连江网站建设网店关键词怎么优化