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

学校网站集约化建设搜索引擎seo优化

学校网站集约化建设,搜索引擎seo优化,制造网站建设哪家好,wordpress 调用站外api每天一题,防止痴呆题目示例分析思路1题解1分析思路2题解2题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。…

每天一题,防止痴呆

  • 题目
  • 示例
  • 分析思路1
  • 题解1
  • 分析思路2
  • 题解2

题目

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

在这里插入图片描述

示例

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
输入:digits = ""
输出:[]
输入:digits = "2"
输出:["a","b","c"]

分析思路1

可以使用递归的方式来实现。
使用了一个数组来保存数字与字母的对应关系。在递归过程中,我们不断地向已有的组合中添加新的字母,直到所有数字都被处理完毕。

题解1

class Solution {// 定义数组存储每个数字对应的字母,下标0和1均为空private final String []  arr = new String[]{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};public List<String> letterCombinations(String digits) {List<String> res = new ArrayList<>();if(digits == null || digits.length() == 0){return res;}backtrack(digits, 0, "", res);return res;}private void backtrack(String digits, int index, String combination, List<String> res){if(index == digits.length()){res.add(combination);return;}// 利用char变量使用 ASCII进行算术运算这一特征,可以得到一种间接计算获取数值的方法// '0'-'9'  ASCII 为 48-57,且顺序一致,因而char数字之间的差值等于数字之间的差值String letters = arr[digits.charAt(index) - '0'];for(int i = 0; i < letters.length(); i++){backtrack(digits, index + 1, combination + letters.charAt(i), res);}}
}

执行结果
在这里插入图片描述

分析思路2

使用回溯算法进行求解。
首先,定义一个哈希表,将每个数字对应的字母存入其中,以便后续查找。
然后,定义一个结果列表 res,用于存储所有的字母组合。
接着,调用回溯函数 backtrack,该函数的参数为当前要处理的电话号码字符串 digits、当前要处理的字符索引 index、当前已经组合好的字母字符串 combination 和结果列表 res。
在回溯函数中,首先判断当前要处理的字符索引是否等于电话号码字符串的长度,如果是,说明已经处理完了所有的字符,此时将当前已经组合好的字母字符串 combination 添加到结果列表 res 中,并返回。
如果当前要处理的字符索引小于电话号码字符串的长度,说明还有字符需要处理。首先从哈希表中获取当前数字对应的字母列表 letters,然后依次枚举其中的每个字母,并将其添加到当前已经组合好的字母字符串 combination 的末尾,然后递归调用回溯函数 backtrack,处理下一个字符。
在递归返回后,需要将当前已经组合好的字母字符串 combination 的末尾字符删除,以便后续枚举其他字母。

题解2

class Solution {private Map<Character, String> phone = new HashMap<Character, String>() {{put('2', "abc");put('3', "def");put('4', "ghi");put('5', "jkl");put('6', "mno");put('7', "pqrs");put('8', "tuv");put('9', "wxyz");}};public List<String> letterCombinations(String digits) {List<String> res = new ArrayList<String>();if (digits.length() == 0) {return res;}backtrack(digits, 0, new StringBuilder(), res);return res;}private void backtrack(String digits, int index, StringBuilder combination, List<String> res) {if (index == digits.length()) {res.add(combination.toString());return;}char digit = digits.charAt(index);String letters = phone.get(digit);for (int i = 0; i < letters.length(); i++) {combination.append(letters.charAt(i));backtrack(digits, index + 1, combination, res);combination.deleteCharAt(index);}}
}

执行结果
在这里插入图片描述

http://www.shuangfujiaoyu.com/news/21508.html

相关文章:

  • 安徽省六安市城乡建设厅网站新的网站怎么推广
  • 上海企业免费网站建设百度框架户一级代理商
  • 水利建设工程网站软文推广做得比较好的推广平台
  • 网站管理的内容郑州关键词优化平台
  • 隐藏网站的wordpress属性新型网络搜索引擎
  • 龙岗 网站建设重庆百度seo公司
  • 网站排名优化服务商上海网络推广公司
  • 域名没到期 网站打不开如何弄一个自己的网站
  • 招聘网站费用怎么做分录百度云登录
  • 勒流有做网站的吗最厉害的搜索引擎
  • 辽宁省政府网站集约化建设陕西seo关键词优化外包
  • 昆明做网站那家好近三天重大新闻摘抄
  • 做网站平台需要多少钱线上卖货平台有哪些
  • 网站规划模板下载国际大新闻最新消息
  • 传统企业网站建设手机打开国外网站app
  • 临沂做wish网站永久免费进销存管理软件手机版
  • 建设银行官方网站链接seo引擎优化
  • 教育行业网站怎么做百度推广一个月费用
  • 上海大型网站建设公司排名个人网站开发网
  • 网站建设维护方案360广告推广平台
  • 网站开发制作入什么科目郑州seo排名公司
  • 建设电子商务网站的目的和意义东莞网络营销网络推广系统
  • 时事军事新闻网seo查询seo
  • 大淘客网站开发小红书怎么做关键词排名优化
  • wordpress和ss一起seo关键词平台
  • 山西建立网站营销策划新网站友链
  • 网站搭建网沧州网站运营公司
  • 会计上大额网站费如何做分录什么是网络营销?
  • 手机站喝茶影视设计一个简单的网页
  • 广州建网站比较有名的公司朝阳网站seo