news 2026/4/16 13:31:31

小红的密码修改【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小红的密码修改【牛客tracker 每日一题】

小红的密码修改

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

已知合法的密码有以下要求:

  1. 长度在8 8816 1616之间。
  2. 必须包含大写字母、小写字母、数字、特殊符号这四种字符。其中特殊符号只能是英文逗号、英文句号、英文问号和英文感叹号这四种。

小红准备修改她目前的密码,但她最多只会修改一个字符,因为修改多了小红就容易忘记她的密码。修改后需要满足是合法的密码。

小红想知道,她一共有多少种修改的方式?共有t tt次询问。

输入描述:

第一行输入一个正整数t tt,代表询问的次数。

接下来的t tt行,每行输入一个字符串。保证输入的字符串是一个合法的密码。

1 ≤ t ≤ 1 0 5 1≤t≤10^51t105

输出描述:

输出t tt行,每行输出一个整数,代表修改的方案数。

示例1

输入:

1 12345aB.

输出:

378

解题思路

输入的字符串为合法密码(长度8 − 16 8-16816,包含大写字母、小写字母、数字、指定四种特殊符号各至少一个),首先统计这四类字符的数量;定义数组p = 25 , 25 , 9 , 3 p={25,25,9,3}p=25,25,9,3,分别对应每类字符仅存1 11个时,替换该类字符为同类型其他字符的可选数(避免替换后该类字符消失,导致密码不合法);对于每类字符,若数量为1 11则累加p [ i ] p[i]p[i]到答案,否则累加该类字符数量乘以65 6565(所有合法字符的总数,此时替换任意合法字符都不会造成类别缺失);最终累加的总和即为最多修改一个字符的合法方案数,该方法单次处理字符串的时间复杂度为O ( l e n ( s ) ) O(len(s))O(len(s)),适配t tt1 e 5 1e51e5的规模,高效计算出结果。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;voidsolve(){string s;cin>>s;vector<ll>c(4,0),p={25,25,9,3};for(auto&ch:s){if(isupper(ch))c[0]++;// 当是大写字母时为真elseif(islower(ch))c[1]++;// 当是小写字母时为真elseif(isdigit(ch))c[2]++;// 当是数字是为真elsec[3]++;}ll ans=0;for(ll i=0;i<4;i++){if(c[i]==1)ans+=p[i];elseans+=c[i]*65;}cout<<ans<<endl;}intmain(){ll t;cin>>t;while(t--)solve();return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 18:31:08

JavaScript选择框增强终极指南:打造专业级用户选择体验

JavaScript选择框增强终极指南&#xff1a;打造专业级用户选择体验 【免费下载链接】chosen Deprecated - Chosen is a library for making long, unwieldy select boxes more friendly. 项目地址: https://gitcode.com/gh_mirrors/ch/chosen 在Web开发中&#xff0c;选…

作者头像 李华
网站建设 2026/4/13 22:57:01

Acme强化学习框架:从算法原理到工程实践

Acme强化学习框架&#xff1a;从算法原理到工程实践 【免费下载链接】acme A library of reinforcement learning components and agents 项目地址: https://gitcode.com/gh_mirrors/acm/acme 重塑强化学习的开发范式 在强化学习研究领域&#xff0c;DeepMind Acme框架…

作者头像 李华
网站建设 2026/4/16 12:16:33

JavaScript进阶(四):DOM监听

文章目录 一.事件监听的三种方式(从旧到新,推荐优先级排序)1.行内监听(HTML 内联属性,不推荐)2.DOM 属性监听(元素属性赋值,简单场景可用)3.addEventListener(标准监听方式,强烈推荐) 二.事件监听的核心概念1.事件流与监听阶段2.事件对象(event)的核心作用 三.事件监听的进阶技…

作者头像 李华