c小荷尖尖:打表方法解决字符串的组合的统计问题

python小试牛刀: K-best算法 """ k-best解决的问题: n个珠宝价值vi和重量wi;求保留k个珠宝的单位价值最大化 n,vi,wi 值域。。。 """ def k_best(v_ls,w_ls,k): l,r = 0.0, 1e5 #maximun 10,0000 while abs(r-l) > 1e-6: mid = (l + r)/2.0 vw_ls = [v - mid * w for v,w in zip(v_ls, w_ls)] choose 阅读详情

问题

一个不超过10万的长字符串,统计某些组合的总可行数。此处以PAT组合为例,若输入PAATT,输出4个;
为了防止数目过大,最终只输出总数模1000000007

code

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

const int MAXN = 100010;
const int MOD = 1000000007; //10; //
char str[MAXN];//={"PATPAT"};
int numP[MAXN];


int main() {
    //gets(str);
    scanf("%s",str);
    int len = strlen(str);
    int combPAT; //目标:统计所有按序 PAT组合的可行数目;
        
    printf("\nstring is %s\n", str);
    
    for(int i = 0; i < len; i++) {
        if ( i > 0) {
            numP[i] = numP[i-1];
        }
        if (str[i] == 'P') {
            numP[i] ++;
        }
        //printf("i = %d, %d \n", i, numP[i]);
    }
    
    int numT = 0;
    printf("%d \n", numT);
    for (int j = len -1; j >= 0; j--) {
        if (str[j] == 'T') {
            numT ++;
        } else if (str[j] == 'A') {
            //combPAT += numT * numP[j] % MOD;
            combPAT = (combPAT + numT * numP[j]) % MOD;
            printf("%d \n", combPAT);
        }
    }
    
    printf("str %s all PAT combination numb is %d\n", str, combPAT);

	cout  << "test\n";
	return 0;
}

result

输入:
PPPPAPATTAPTPPAATTTAPPAT
输出:
string is PPPPAPATTAPTPPAATTTAPPAT
0
10
18
50
82
107
142
170
str PPPPAPATTAPTPPAATTTAPPAT all PAT combination numb is 170

  • 打表记录字符串每个位置的左侧累计的P字符个数;再类似记录从右到左的T字符的个数; 最后依次统计每个T位置的左右两侧个数的积,防止数目过大,模1个MOD即可
nvlddmkm事件ID14报错排查全指南:从找不到描述到显卡驱动崩溃 系统日志中的“无法找到描述”往往让人一头雾水,但这类提示其实隐藏着驱动故障的关键线索。Windows事件查看器通过事件源和ID记录系统异常,其中显卡驱动相关的内核模式驱动组件一旦超时失败,就会触发TDR机制,产生13、14、153等不同事件ID。理解这些ID的含义,比纠结“找不到描述”本身更重要。对于频繁出现的驱动崩溃问题,可以从日志频率和发生场景判断方向,再通过安全模式下彻底清理驱动、关闭冲突软件、检查供电和温度等步骤逐层定位。无论是游戏满载黑屏,还是睡眠唤醒后闪退,掌握NVIDIA驱动日志的解读逻辑,都 阅读详情

相关推荐

服务器安全配置:二、本地安全策略设置

密码最长使⽤期限”设置为“90天”;“⽤可以还原的加密来存储密码”设置为“禁⽤”“复位账户锁定计数器”设置为15分钟,贴图这里是我自己设置的时间,15分钟也够用,具体看自己需要。”网络访问: 不允许 SAM 帐户和共享的匿名枚举“设置为“已启用””网络访问: 限制对命名管道和共享的匿名访问“设置为“已启用””网络访问: 不允许匿名枚举 SAM 帐户“设置为“已启用”“关机: 允许系统在未登录的情况下关闭”设置为“已禁用”(1)交互式登录:不显示最后的⽤户名”设置为“已启⽤”

weixin_48825672的博客 3136

字符串排列组合数

// 输出给定的字符串的所有的组合 //输入:“AAB” //输出:8 //解释:可能的序列为 “A”, “B”, “AA”, “AB”, “BA”, “AAB”, “ABA”, “BAA”。 //MAX_Len(Str) == 7 public static void main(String[] args) { System.out.println(subStrLength("...

deng0515001的博客 1098

从SRIOV到SIOV:PCIe虚拟化技术下一代革命

如果说SR-IOV是过去十年PCIe虚拟化的“标杆方案”,那SIOV就是为超大规模云数据中心、AI集群量身打造的“破局者”——它解决了SR-IOV难以逾越的扩展性瓶颈,同时平衡了性能、成本与生态兼容性。今天就从“为什么需要SIOV”到“SIOV到底强在哪”,再到“未来要解决什么问题”,做一次全方位深度拆解。

存储随笔 2560

字符串统计

问题描述 : 明明最近在做一个有关字符串的统计工作。两个由小写字母组成的字符串s1和s2,明明需要统计出以下四种关系: (1)在s1或s2中存在的字母(包括在s1和s2中都存在的字母); (2)在s1中且在s2中的字母; (3)在s1中但不在s2中的字母,在s2中但不在s1中的字母; (4)不在s1中且也不在s2中的字母; 例如两个字符串s1为“lkjsvoahs”,s2为“qglhskjdfg”...

Orange1024 827

遥感大模型之Prithvi的关键技术解读

Prithvi系列模型开创了遥感领域基础模型新范式,通过海量多源时空数据(HLS和SAR)与Vision Transformer架构的深度融合,采用掩码自编码器进行自监督预训练,实现了强大的地球观测表征能力。该技术体系突破传统方法在全局建模、多模态融合和时空分析上的局限,仅需少量标注数据即可在土地分类、灾害监测等任务上取得优异表现。从初代3亿参数到Prithvi-EO-2.0的10亿参数升级,展现了模型可扩展性,为构建地球数字孪生智能基座奠定基础。

panshengwu的博客 866

携程机票数据爬取实战:使用 Python 获取携程网机票信息

通过本篇博客,我们详细介绍了如何使用 Python 爬取携程网的机票信息,涉及了静态网页爬取(使用 Requests 和 BeautifulSoup)和动态网页爬取(使用 Selenium)两种方法。通过获取的数据,我们不仅能够进行票价分析,还可以构建更为复杂的预测模型或趋势分析工具。爬虫技术不仅能够帮助我们收集有价值的数据,还能够为商业决策提供数据支持。在实际应用中,我们可以结合更多的分析方法,如自然语言处理、图像处理等,进一步提升数据的价值。

2201_76125261的博客 1657

python字符组合统计_Python--常用数学统计算法、字符串操作、合并merge、按行连接join、沿轴连接、去重和替换...

常用的数学统计算法importnumpy as npimportpandas as pdfrom pandas importSeries,DataFramedf=pd.DataFrame({'key1' :[4,5,3, np. nan, 2],'key2':[1,2, np.NaN, 4,5],'key3' :[1,2,3,'j','k']},index= ['a','b','c','d','e...

weixin_39951419的博客 388

threejs中使用Reflector实现出倒影效果,并实现背景透明的效果(Reflector镜面背景透明, 倒影弱化)

在项目中遇到要实现倒影效果,threejs给我们提供了Reflector,可以轻松完成镜面效果,实现倒影。但背景不透明;并且反射出的倒影太亮了;网上没搜到解决方案, 自己修改了下源码实现了想要的效果,做个记录...

weixin_40856652的博客 5721

leetcode.12. 整数转罗马数字---字符串操作(打表法)

12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII , 即为 X + II 。 27 写做 XXVII, 即为 XX +

xiangguang_fight的博客 368

【工业级视觉实战】海康威视SDK + Python + YOLOv11:零延迟目标追踪系统落地指南

要在 Python 中调用海康 DLL,首先得把 C++ 的结构体 1:1 翻译过来。这是很多开发者踩坑最深的地方(指针错误、内存溢出)。import sys# 根据操作系统加载库else:# 定义设备信息结构体 (对应 C++ LPNET_DVR_DEVICEINFO_V30)("sSerialNumber", ctypes.c_byte * 48), # 序列号("byAlarmInPortNum", ctypes.c_byte), # 报警输入个数。

BUG猿的博客 227

使用python中pypower进行电力潮流计算

使用python中pypower进行电力潮流计算

总裁余(余登武)博客 4863

字符串组合数目的统计

分析:提取首字母,然后对首字母后面的字符进行递归操作即可。我的代码:import java.util.*;public class Permutation { public ArrayList<String> getPermutation(String A) { // write code here if(A==null){ retur

Fighting 689

计算机网络技术研究方向有哪些创新点

计算机网络技术方向的创新点众多,这些创新不仅推动了网络技术的不断发展和完善,还为用户提供了更高效、更安全、更便捷的网络服务。- 边缘计算是一种将计算和数据存储推向网络边缘的技术,通过将数据处理和分析的任务分散到网络的各个节点,降低了数据传输的延迟,提高了实时性。- 通过网络自动化工具和技术,可以实现网络配置的自动化、网络故障的自动诊断与修复等功能,降低了网络运维的复杂性和成本。- 通过引入人工智能技术,网络可以实现更智能的流量管理、故障预测和自动修复等功能,提高了网络的性能和稳定性。

Loving_enjoy的博客 1495

python string和bytes互相转换,去除str(bytes)输出的b‘字眼

b1 = b"i am dady" b2 = b"dady" print('*'*20,'Bytes => String','*'*20) print('将bytes串直接str()输出,带有b\'xx\': ',str(b1),' ',str(b2)) print('一种去除b字眼方法,str(x,encoding=\'utf-8\'):',str(b1,encoding='utf-8'), ' ',str(b2,encoding='utf-8')) print('第二种去除b字眼方法,b.d

PerfeyCui的博客 2万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

维基百科公式不显示怎么办 找不到latex公式怎么办?

一劳永逸 维基百科公式不显示怎么办? 注册1个wiki账号, 参数设置, 显示选项卡,最后的PNG图片点上; 成功; 2 粗一点 or 找不到latex公式真么办? 不想注册账号? 拷贝wiki原文,放入latex解析功能的文档中;比如优快云 ($前后空格全部替换掉);如下: A Rician fading channel can be described by two paramete...

PerfeyCui的博客 7713

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python, scipy.optimize.minimize进行等式不等式约束优化 非常强大

code import numpy as np from scipy.optimize import minimize # optimize 1 # f(x) = 2xy + 2x - x^2 - 2y^2; x^3 - y = 0; y - 1 >=0 def func(x, sign=1.0): return sign * (2*x[0]*x[1] + 2*x[0] -x[0]**2 -2*x[1]**2) def func_deriv (x, sign=1.0): dfdx0

PerfeyCui的博客 5632

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

python程序:学校考勤系统

main.py ''' 目标:做一个电子考勤系统,实现学生登录信息的增删改查、学生考勤信息的增删改查 结构: -mian.py -func.py -stu_infos.csv #学生登录信息,(id,name,code) 3元组为一行记录 -attendance.csv #考勤信息 (id,name,state, time) 4元组为一行记录 ''' from func import * def login(): info_dics = get_info('stu_infos')

PerfeyCui的博客 3679

java匿名线程Thread的三种方式:lambda,run重写,Runable接口和run重写

/* * 匿名Thread几种方法: * 1) 重写run方法:通过new Thread(){}.start() 直接new一个实例后实现并start, 实现里面重写run方法 * 2) 调用runable接口:new Thread( new Runable(){} ).start() * 3) 通过lambda传参给Thread: new Thread( () -> {}).start() * * Task: * “yyyy-MM-dd HH:mm:ss”的格式打印当前系统时间,总循环10次,每1.

PerfeyCui的博客 3049

python数学画图之双曲函数系列

code: """ sinhx = (e^x - e^(-x)) /2 cosh x = (e^x + e^(-x)) /2 tanh x = sinh x/ cosh x = (e^x - e^(-x)) / (e^x + e^(-x)) coth x = cosh x/ sinh x = (e^x + e^(-x)) / (e^x - e^(-x)) sech x = 1/coshx csc x = 1/sinhx """ import numpy as np import matplotlib.py

PerfeyCui的博客 2901

AttributeError: module...ops‘ has no attribute ‘_TensorLike‘, ValueError: `updates` argument..eager

目的 keras和tensorflow结合使用很方便,然而坑点好多,好坑爹; *问题是: AttributeError: module ‘tensorflow.python.framework.ops’ has no attribute ‘_TensorLike’ 原因在于keras导入的和tensorflow.keras导入的主次不同,结构有差异; 修改 *修改前 from keras.models import Sequential from keras.layers import Dense, Dro

PerfeyCui的博客 2719

AI那些事儿之验证集、shuffle作用

验证集干啥的?验证集合测试集哪个更重要? 一句话:训练集用于“自动地”训练调整模型中网络参数(weights)、验证集用于调超参数(epochs轮数,几层比较合适,啥时候过拟合,要不要dropout,要多大程度)、测试集测试模型泛化能力; 验证集和测试集都应当和训练集是同分布的数据,都不会进入网络中,直接训练网络模型(根BP或前向传播都没关系); 那么为啥有两个?为啥train-test两种模型更广为人知?实际上,验证集是AI炼丹士的自留地,每次跑完一轮,验证一下识别率,1)差异太大赶紧调过拟合 2)不收敛

PerfeyCui的博客 2379

平衡线共模抑制原理和距离

一句话概括: 双(或4)平衡线的物理式设计(共模抑制)、差分信号的数字式抑制噪声的原理都是统一的,大多数的外在干扰都对相似(相同距离、相同阻抗等)的信号产生同样的干扰影响;—— 平衡线传输靠末端的共模信号相消,差分信号靠两个信号反向相消,两者同样能实现干扰对消的目的; 因为平衡线倾向于物理,差分信号倾向于数字,所以两者不是同一纬度的东西; 平衡线可以差分传输,也可以共模传输等,差分信号也不仅仅用于平衡线,也可用于非平衡线(如同轴电缆); 平衡线一例:双绞线 双绞线共模传输 - 更好的屏蔽双绞线Rj-45接

PerfeyCui的博客 2043

Python numpy ndarray加减乘除 矩阵乘 简洁版

#2 numpy + - * / @ a = np.arange(0,20).reshape(4,5) b = np.arange(-21,-1).reshape(4,5)[::-1,::-1] c = np.diag([-1,-10,-1000,-100000,-100000000]) print(a,b) print('a+ - * / b:',a+b, a-b,a*b,a/b) print('mat multiply: a@c',c, a@c) 加减乘除只要都是对ndarray,shape相同,或

PerfeyCui的博客 1598

python小试牛刀:抢手机/抢票神器

code import time from splinter.browser import Browser #url = "https://item.jd.com/100013976326.html" def login(b): #登录京东 b.click_link_by_text("你好,请登录") time.sleep(3) b.click_link_by_text("账户登录") b.fill("loginname","xxx") #填写账户密码 b.fill

PerfeyCui的博客 1537

matplotliba画有意思的3D图,主3D加xyz轴方向投影

from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt from matplotlib import cm import numpy as np def draw3Dcontour(func, s= "x^2 + y^3"): x = np.arange(-2*np.pi, 2*np.pi, 0.5) y = np.arange(-2*np.pi, 2*np.pi, 0.5) X, Y = n

PerfeyCui的博客 1418

python 3D,点成球,螺旋线/面,等高线,莫比乌斯环

点成球 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D PC = [] x = np.arange(-10,11,1) for i in x: #[1,2]: y = list(np.arange(-np.sqrt(100-i**2),np.sqrt(100-i**2)+1 )) for it in y: PC.append([i,it])

PerfeyCui的博客 1118
上一篇: go小试牛刀-select通道选择和超时处理
下一篇: go牛刀小试:go的打点器ticker,可停止
飞凡可期
博客等级 码龄11年 34粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值