网易首页 > 网易号 > 正文 申请入驻

2024-08-03:用go语言,给定一个从 0 开始的字符串数组 `words`

0
分享至

2024-08-03:用go语言,给定一个从 0 开始的字符串数组,

words

我们定义一个名为的布尔函数,该函数接受两个字符串参数和。

isPrefixAndSuffix

str1

str2

当同时是的前缀和后缀时,函数返回;否则返回。

str1

str2

true

false

例如,返回,

isPrefixAndSuffix("aba", "ababa")

true

因为 "aba" 既是 "ababa" 的前缀也是后缀,而返回。

isPrefixAndSuffix("abc", "abcd")

false

我们的目标是以整数形式返回符合条件的下标对 (i, j) 的数量,

其中满足且为。

i < j

isPrefixAndSuffix(words[i], words[j])

true

输入:words = ["a","aba","ababa","aa"]。

输出:4。

解释:在本示例中,计数的下标对包括:

i = 0 且 j = 1 ,因为 isPrefixAndSuffix("a", "aba") 为 true 。

i = 0 且 j = 2 ,因为 isPrefixAndSuffix("a", "ababa") 为 true 。

i = 0 且 j = 3 ,因为 isPrefixAndSuffix("a", "aa") 为 true 。

i = 1 且 j = 2 ,因为 isPrefixAndSuffix("aba", "ababa") 为 true 。

因此,答案是 4 。

答案2024-08-03:

chatgpt

题目来自leetcode3045。

大体步骤如下:

1 **定义函数**:实现一个函数,判断是否是的前缀和后缀。

isPrefixAndSuffix(str1, str2)

str1

str2

  • •检查的长度是否大于的长度。如果是,直接返回。
  • str1
  • str2
  • false
  • •确定的前缀是否与相同。
  • str2
  • str1
  • •确定的后缀是否与相同。
  • str2
  • str1
  • •如果上述两个条件都满足,返回;否则返回。
  • true
  • false

2.**遍历字符串数组**:

words

  • •使用两个嵌套循环,外层循环设定为,从 0 遍历到,内层循环设定为,从遍历到。这样可以确保。
  • i
  • len(words)-1
  • j
  • i+1
  • len(words)-1
  • i < j

3.调用函数:在每对中,调用。

isPrefixAndSuffix

(i, j)

isPrefixAndSuffix(words[i], words[j])

  • •如果函数返回,则计数器增加 1。
  • true

4.返回计数器的值:最终,返回计数器的值,即为符合条件的下标对数量。

总时间复杂度

  • •外层循环走次,内层循环从到,最坏情况下为。
  • n
  • i+1
  • n
  • O(n)
  • •对于每一对,调用需要在时间内进行字符串的比较,其中是前缀或后缀的长度。
  • (i, j)
  • isPrefixAndSuffix
  • O(m)
  • m
  • •因此,总的时间复杂度为,其中是字符串的最长长度。
  • O(n^2 * m)
  • m

总额外空间复杂度

  • •本算法使用少量的额外空间来存储计数器和函数的一些局部变量,因此额外空间复杂度为。
  • O(1)
  • •函数内部的字符串比较不需要额外的存储,仅使用常量空间来存储临时变量,主存储体在输入中。
  • words

综上所述,时间复杂度为,额外空间复杂度为。

O(n^2 * m)

O(1)

Go完整代码如下:

在packagemain
import(
"fmt"
)
funccountPrefixSuffixPairs(words[]string)(ansint64){
typepairstruct{x,ybyte}
typenodestruct{
sonmap[pair]*node
cntint
}
root:=&node{son:map[pair]*node{}}
for_,s:=rangewords{
cur:=root
fori:=ranges{
p:=pair{s[i],s[len(s)-1-i]}
ifcur.son[p]==nil{
cur.son[p]=&node{son:map[pair]*node{}}
}
cur=cur.son[p]
ans+=int64(cur.cnt)
}
cur.cnt++
}
return
}
funcmain(){
words:=[]string{"a","aba","ababa","aa"}
fmt.Println(countPrefixSuffixPairs(words))
}



Python完整代码如下:

#-*-coding:utf-8-*-
classTrieNode:
def__init__(self):
self.children={}
self.count=0
defcount_prefix_suffix_pairs(words):
root=TrieNode()
ans=0
forsinwords:
current=root
length=len(s)
foriinrange(length):
p=(s[i],s[length-1-i])#使用元组表示前缀和后缀字符对
ifpnotincurrent.children:
current.children[p]=TrieNode()
current=current.children[p]
ans+=current.count#统计满足条件的对数
current.count+=1#更新当前节点的计数
returnans
if__name__=="__main__":
words=["a","aba","ababa","aa"]
print(count_prefix_suffix_pairs(words))



声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
乌克兰再次向俄罗斯发射10枚美制导弹,无视俄罗斯刚发出的核警告

乌克兰再次向俄罗斯发射10枚美制导弹,无视俄罗斯刚发出的核警告

粉红熊猫
2024-11-24 21:44:09
27集古装悬疑剧来了!张颂文、白百何领衔主演,央视这回又挖到宝

27集古装悬疑剧来了!张颂文、白百何领衔主演,央视这回又挖到宝

追影客栈
2024-11-24 08:13:24
朝鲜公开毛岸英牺牲真相:内容简短却很炸裂,真正凶手不是美国人

朝鲜公开毛岸英牺牲真相:内容简短却很炸裂,真正凶手不是美国人

南书房
2024-07-29 18:53:04
纪实:浙江女教师突然失踪6年,13岁儿子凭借一个梦找到母亲

纪实:浙江女教师突然失踪6年,13岁儿子凭借一个梦找到母亲

红豆讲堂
2024-10-25 09:45:59
美军还是低估了解放军,不许俄罗斯的“关键王牌”,送到中国手上

美军还是低估了解放军,不许俄罗斯的“关键王牌”,送到中国手上

湘评中外
2024-11-25 21:07:00
小米SUV最新外观渲染图来了 高端感拉满 雷军曾亲自测试

小米SUV最新外观渲染图来了 高端感拉满 雷军曾亲自测试

手机中国
2024-11-25 23:44:10
马斯克效率部工作计划纲要:我们不会只写报告或剪彩,我们要剪掉的是成本

马斯克效率部工作计划纲要:我们不会只写报告或剪彩,我们要剪掉的是成本

问问马斯克AskMusk
2024-11-26 00:15:45
新款Model Y最新谍照曝光:造型简洁,内饰配置升级,值得等?

新款Model Y最新谍照曝光:造型简洁,内饰配置升级,值得等?

车壹圈
2024-11-25 16:18:42
Scout再次违规跳槽JDG,或将被LNG起诉,JKL:明年Solo决定选边权

Scout再次违规跳槽JDG,或将被LNG起诉,JKL:明年Solo决定选边权

风尘Game
2024-11-25 10:02:28
丰田官方松口承认Celica复活回归!将搭2.0T马力至少400匹引擎

丰田官方松口承认Celica复活回归!将搭2.0T马力至少400匹引擎

MOTO
2024-11-25 11:49:11
抛妻弃子,逼原配自尽,成名后甩了原配的3位男星,一个比一个绝

抛妻弃子,逼原配自尽,成名后甩了原配的3位男星,一个比一个绝

柴叔带你看电影
2024-11-25 00:45:56
王楚钦不打11:0以德服人,做人留一线赢得张本智和尊重,主动低头

王楚钦不打11:0以德服人,做人留一线赢得张本智和尊重,主动低头

嘴炮体坛
2024-11-25 11:54:25
“四子王旗警察枪击案”重审明日开庭

“四子王旗警察枪击案”重审明日开庭

红星新闻
2024-11-25 20:16:13
大家一起吹吹牛,只有中国当真了。美国画个饼,中国说味道不错

大家一起吹吹牛,只有中国当真了。美国画个饼,中国说味道不错

猫小狸同学
2024-11-12 16:15:03
伊万卡面相变了:脸颊消瘦眼神发狠,再不是丰润甜美的“水蜜桃”

伊万卡面相变了:脸颊消瘦眼神发狠,再不是丰润甜美的“水蜜桃”

毒舌小红帽
2024-11-24 20:33:53
消息称一汽丰田拟将销售总部从北京迁往天津

消息称一汽丰田拟将销售总部从北京迁往天津

IT之家
2024-11-25 22:50:06
重庆楼市全军覆没,重庆渝北区房价跌了1000,江北区房价跌了2000

重庆楼市全军覆没,重庆渝北区房价跌了1000,江北区房价跌了2000

有事问彭叔
2024-11-25 22:40:35
美国不愧是中国的好老师!三年了,立陶宛终于乖乖认错了

美国不愧是中国的好老师!三年了,立陶宛终于乖乖认错了

老妖的针见
2024-11-26 02:10:03
湖北的这份通报,爆出冰山一角

湖北的这份通报,爆出冰山一角

觉叔说
2024-11-25 20:26:49
内蒙古一彩票店赠送顾客的彩票中奖1000万元,双方为钱该归谁争执不下,眼看兑奖日期临近……

内蒙古一彩票店赠送顾客的彩票中奖1000万元,双方为钱该归谁争执不下,眼看兑奖日期临近……

环球网资讯
2024-11-25 17:40:15
2024-11-26 04:23:00
moonfdd
moonfdd
福大大架构师每日一题
548文章数 15关注度
往期回顾 全部

科技要闻

特斯拉又降价,知情人士:冲刺今年销售目标

头条要闻

挪威史上最大规模性丑闻 妇科医生20年强奸87名患者

头条要闻

挪威史上最大规模性丑闻 妇科医生20年强奸87名患者

体育要闻

杨瀚森这态度,是打不了NBA的...

娱乐要闻

爆料郑雨盛和女模特,女方非正常怀孕

财经要闻

刘煜辉最新演讲全文:蛇的策略

汽车要闻

特斯拉限时优惠:Model Y仅23.99万起 还能5年0息

态度原创

房产
时尚
亲子
教育
军事航空

房产要闻

合生把上百个亿万富豪搞破防了

灰色大衣,配高领衫才时髦!

亲子要闻

怀孕生产时老公能有离谱?网友:

教育要闻

采访澳大利亚RMIT新加坡项目学术主任:应变是国际教育的核心理念

军事要闻

俄方称在库尔斯克州上空击落多枚导弹及多架无人机

无障碍浏览 进入关怀版