中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

山東seo網(wǎng)絡(luò)營(yíng)銷推廣seo指搜索引擎

山東seo網(wǎng)絡(luò)營(yíng)銷推廣,seo指搜索引擎,加盟店,公司注冊(cè)資金新規(guī)定【每日一題】LeetCode 2306.公司命名(位運(yùn)算、數(shù)組、哈希表、字符串、枚舉) 題目描述 給定一個(gè)字符串?dāng)?shù)組 ideas,表示在公司命名過程中使用的名字列表。我們需要從 ideas 中選擇兩個(gè)不同的名字,稱為 ideaA 和 ideaB。然后交換 i…

【每日一題】LeetCode 2306.公司命名(位運(yùn)算、數(shù)組、哈希表、字符串、枚舉)

題目描述

給定一個(gè)字符串?dāng)?shù)組 ideas,表示在公司命名過程中使用的名字列表。我們需要從 ideas 中選擇兩個(gè)不同的名字,稱為 ideaAideaB。然后交換 ideaAideaB 的首字母。如果交換后得到的兩個(gè)新名字都不在 ideas 中,那么這兩個(gè)名字串聯(lián)起來(中間用一個(gè)空格分隔)就是一個(gè)有效的公司名字。我們需要返回不同且有效的公司名字的總數(shù)。

在這里插入圖片描述

輸入示例

示例 1:

輸入:ideas = ["coffee","donuts","time","toffee"]
輸出:6
解釋:下面列出一些有效的選擇方案:
- ("coffee", "donuts"):對(duì)應(yīng)的公司名字是 "doffee conuts" 。
- ("donuts", "coffee"):對(duì)應(yīng)的公司名字是 "conuts doffee" 。
- ("donuts", "time"):對(duì)應(yīng)的公司名字是 "tonuts dime" 。
- ("donuts", "toffee"):對(duì)應(yīng)的公司名字是 "tonuts doffee" 。
- ("time", "donuts"):對(duì)應(yīng)的公司名字是 "dime tonuts" 。
- ("toffee", "donuts"):對(duì)應(yīng)的公司名字是 "doffee tonuts" 。
因此,總共有 6 個(gè)不同的公司名字。下面列出一些無效的選擇方案:
- ("coffee", "time"):在原數(shù)組中存在交換后形成的名字 "toffee" 。
- ("time", "toffee"):在原數(shù)組中存在交換后形成的兩個(gè)名字。
- ("coffee", "toffee"):在原數(shù)組中存在交換后形成的兩個(gè)名字。

示例 2:

輸入:ideas = ["lack","back"]
輸出:0
解釋:不存在有效的選擇方案。因此,返回 0 。

提示

  • 2 <= ideas.length <= 5 * 10^4
  • 1 <= ideas[i].length <= 10
  • ideas[i] 由小寫英文字母組成
  • ideas 中的所有字符串互不相同

思路分析

  1. 遇到困難題,我們先可以嘗試暴力枚舉,然后再逐步優(yōu)化!
  2. 首先,我們將 ideas 數(shù)組中的所有字符串添加到一個(gè) HashSet 中,以便快速檢查某個(gè)字符串是否在 ideas 中。
  3. 然后,我們使用兩層循環(huán)遍歷 ideas 數(shù)組,外層循環(huán)選擇 ideaA,內(nèi)層循環(huán)選擇 ideaB。
  4. 對(duì)于每一對(duì) ideaAideaB,我們交換它們的首字母,得到兩個(gè)新的名字 newIdea1newIdea2
  5. 我們檢查這兩個(gè)新名字是否都不在 ideas 中。如果不在,那么這是一個(gè)有效的公司名字,計(jì)數(shù)器 count 增加。
  6. 由于每一對(duì) ideaAideaB 可以交換兩次(ideaAideaBideaBideaA),所以我們需要將最終的計(jì)數(shù)器 count 乘以 2。

代碼實(shí)現(xiàn)(暴力枚舉)

class Solution {public long distinctNames(String[] ideas) {// 將所有名字存入HashSet中,方便快速查找HashSet<String> set = new HashSet<>();for (String idea : ideas) {set.add(idea);}// 初始化計(jì)數(shù)器long count = 0;int n = ideas.length;// 外層循環(huán)遍歷選擇ideaAfor (int i = 0; i < n; i++) {char firstChar1 = ideas[i].charAt(0); // 獲取ideaA的首字母// 內(nèi)層循環(huán)遍歷選擇ideaB,從i+1開始避免重復(fù)for (int j = i + 1; j < n; j++) {char firstChar2 = ideas[j].charAt(0); // 獲取ideaB的首字母// 交換首字母后的新名字String newIdea1 = firstChar2 + ideas[i].substring(1);String newIdea2 = firstChar1 + ideas[j].substring(1);// 如果兩個(gè)新名字都不在ideas中,那么這是一個(gè)有效的公司名字if (!set.contains(newIdea1) && !set.contains(newIdea2)) {count++;}}}// 由于每一對(duì)可以交換兩次,所以最終結(jié)果需要乘以2return count * 2;}
}

##思路優(yōu)化

  1. 我們可以使用一個(gè)數(shù)組 groups 來存儲(chǔ)按首字母分組的后綴。
  2. 遍歷 ideas 數(shù)組,將每個(gè)字符串的后綴(去掉首字母的部分)添加到對(duì)應(yīng)的 HashSet 中。
  3. 使用兩層循環(huán)遍歷 groups 數(shù)組,外層循環(huán)選擇首字母 i,內(nèi)層循環(huán)選擇首字母 j(從 i+1 開始,避免重復(fù)計(jì)算)。
  4. 對(duì)于每一對(duì)首字母 ij,我們統(tǒng)計(jì)它們共有的后綴數(shù)量 m。
  5. 計(jì)算可以形成的不同名稱的數(shù)量,即 (groups[i].size() - m) * (groups[j].size() - m)。
  6. 由于每一對(duì) ideaAideaB 可以交換兩次(ideaAideaBideaBideaA),所以我們需要將最終的計(jì)數(shù)器 count 乘以 2。

##代碼實(shí)現(xiàn)(思路優(yōu)化)

class Solution {public long distinctNames(String[] ideas) {// 開一個(gè)set數(shù)組存儲(chǔ)后綴HashSet<String>[] groups = new HashSet[26];for (int i = 0; i < 26; i++) {groups[i] = new HashSet<>(); }// 將每個(gè)字符串的后綴按照首字母分組for (String str : ideas) {groups[str.charAt(0) - 'a'].add(str.substring(1)); // 將后綴加入到對(duì)應(yīng)的 HashSet 中}long count = 0;// 兩層循環(huán)遍歷所有可能的首字母組合for (int i = 0; i < 26; i++) {for (int j = i + 1; j < 26; j++) {int m = 0; // 計(jì)數(shù)相同后綴的數(shù)量// 統(tǒng)計(jì) i 組和 j 組中相同的后綴數(shù)量for (String s : groups[i]) {if (groups[j].contains(s)) {m++;}}// 計(jì)算 i 組和 j 組可以形成的不同名稱的數(shù)量count += (long)((groups[i].size() - m) * (groups[j].size() - m));}}return count * 2; // 每對(duì)組合可以有兩種排列,因此乘以 2}
}

效公司名字的總數(shù)。

http://www.risenshineclean.com/news/28302.html

相關(guān)文章:

  • ic商城網(wǎng)站建設(shè)同城引流用什么軟件
  • 怎么做校園表白墻網(wǎng)站怎么在網(wǎng)上做網(wǎng)絡(luò)營(yíng)銷
  • 網(wǎng)站建設(shè)論文的前言南京seo排名優(yōu)化
  • 深業(yè)資本有限公司網(wǎng)站建設(shè)成都高端品牌網(wǎng)站建設(shè)
  • 江蘇靖江蘇源建設(shè)有限公司招標(biāo)網(wǎng)站搜盤 資源網(wǎng)
  • 網(wǎng)站建設(shè)優(yōu)化兼職成都seo工程師
  • 網(wǎng)站seo診斷評(píng)分63淘寶指數(shù)查詢
  • 上海閔行網(wǎng)站制作公司全網(wǎng)推廣方案
  • 做網(wǎng)站銷售一個(gè)星期的計(jì)劃市場(chǎng)營(yíng)銷案例
  • 政府網(wǎng)站免費(fèi)模板產(chǎn)品營(yíng)銷方案策劃
  • 三端互通傳奇手游找服網(wǎng)站百度一下首頁(yè)手機(jī)版
  • 商城類網(wǎng)站建設(shè)需要多少錢標(biāo)題優(yōu)化怎樣選關(guān)鍵詞
  • 人力資源公司網(wǎng)站模板網(wǎng)頁(yè)設(shè)計(jì)制作網(wǎng)站模板
  • 巫山網(wǎng)站開發(fā)太原seo哪家好
  • 淘寶怎么做網(wǎng)站網(wǎng)絡(luò)優(yōu)化大師app
  • 專業(yè)網(wǎng)站設(shè)計(jì)制作費(fèi)用下載百度到桌面
  • 網(wǎng)站欄目劃分的原則瀏覽器如何推廣自己網(wǎng)站
  • 網(wǎng)站制作的頁(yè)面比例上海單個(gè)關(guān)鍵詞優(yōu)化
  • 北京網(wǎng)站建設(shè)哪家好百度官網(wǎng)認(rèn)證免費(fèi)
  • 煙臺(tái)seo關(guān)鍵詞排名優(yōu)化英文
  • 網(wǎng)站開發(fā)數(shù)據(jù)庫(kù)分析模板谷歌官網(wǎng)入口
  • 常州武進(jìn)區(qū)建設(shè)局網(wǎng)站吉林網(wǎng)站推廣公司
  • 寫作網(wǎng)站一稿多投的后果海外廣告投放公司
  • 佛山企業(yè)網(wǎng)站制作公司線上平臺(tái)怎么推廣
  • 網(wǎng)站搜索框用ps怎么做長(zhǎng)春最新發(fā)布信息
  • 營(yíng)銷型網(wǎng)站建設(shè)好不好免費(fèi)營(yíng)銷軟件網(wǎng)站
  • 嘟嘟嘟在線觀看播放免費(fèi)寧波seo外包推廣平臺(tái)
  • 陜西省建設(shè)廳網(wǎng)站月報(bào)免費(fèi)域名的網(wǎng)站
  • 晉江論壇匿名區(qū)青島seo排名收費(fèi)
  • 微信小程序網(wǎng)站開發(fā)教程旅游seo整站優(yōu)化