Java 获得所有子字符串,java – 查找字符串中所有出现的分割子字符串

我正在努力解决一个非常特殊的问题.如果子串不必是一个整体,我需要找到字符串中所有出现的子串的数量.

例:

输入:

adnndaend

我会尝试找到子串和.

出现次数:

adnndaend

adnndaend

adnndaend

adnndaend

adnndaend

adnndaend

输出:

6

我试图通过使用python re.findall来实现出现的列表:

re.findall('^.*a.*n.*d.*$', 'adnndaend')

但它只返回一个项目列表 – 整个字符串:

['adnndaend']

那么请你告诉我,我的正则表达式有什么问题或者告诉我你更好的解决方案?理想情况下,在Python或Java中,我对其他语言并不熟悉.

解决方法:

您可以获得使用a,n和d出现次数的所有组合:

from itertools import combinations

def sub_s(st,word):

all_s = (x for x in st if x in word)

return len([x for x in (combinations(all_s, len(word))) if "".join(x) == word] )

标签:python,java,algorithm,regex

来源: https://codeday.me/bug/20190528/1172436.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值