当前位置: 首页 > news >正文

新建的网站只能用临时域名打开网站项目管理系统

新建的网站只能用临时域名打开,网站项目管理系统,光明网站建设,盐城专业做网站的公司分析题意 得到“答案正确”的条件是#xff1a; 字符串中必须仅有 P、 A、 T这三种字符#xff0c;不可以包含其它字符#xff1b; 任意形如 xPATx 的字符串都可以获得“答案正确”#xff0c;其中 x 或者是空字符串#xff0c;或者是仅由字母 A 组成的字符串#xff1…分析题意 得到“答案正确”的条件是 字符串中必须仅有 P、 A、 T这三种字符不可以包含其它字符 任意形如 xPATx 的字符串都可以获得“答案正确”其中 x 或者是空字符串或者是仅由字母 A 组成的字符串 如果 aPbTc 是正确的那么 aPbATca 也是正确的其中 a、 b、 c 均或者是空字符串或者是仅由字母 A 组成的字符串。 根据题目中的规则如果aPbTc是正确的那么aPbATca也是正确的。这里我们可以把字符串中P之前的A的个数看作xP和T之间的A的个数看作yT之后的A的个数看作z。 对于初始的合法字符串xPATx这里x可以为空字符串或者仅由A组成的字符串此时有x个A在P之前1个A在P和T之间x个A在T之后满足x * 1x的关系。 当按照规则扩展时比如从aPbTc变为aPbATca如果P之前A的个数为aP和T之间A的个数从b变为b 1T之后A的个数从c变为c a。这种变化始终保持着a * bc的关系在原始的xPATx中就是x * 1x。 总之就是只有PA,T三种字符PT之间必须有AP前面的A * PT之间的A T之后的A 代码思路 确定字符种类 要检测只有三种字符还有统计其中APT的个数可以想到利用键值对map分别检测字符和字符数量那么就创建一个mapchar ,int类型的键值对变量m。 我们就可以通过遍历字符串的每个字符的方式来确定字符种类数和每种字符的个数。 确定A的数量关系 要确定A的数量关系可以利用下标索引来求我们可以发现字符串索引从0开始那么P之前A的个数就可以用P的下标来代表那么我们在循环中一旦遍历到’P’,我们就把它的下标存到一个变量p中作为P前面A的个数。 PT之间 T的索引 - P的索引再减去1.比如 PTA 012 2 - 0 - 1 11为PT间A的个数 T之后A的个数 字符串长度 - T的索引 - 1 PTAAAA 0123456 6 - 1 - 1 4为T之后A的个数 P和T之间必须有A 那么P和T的索引之差就不能小于1 只有PAT三种字符 那么m.size() 3如果还有多的或者是不足三种m.size()就不为3了 m.size()代表的是这个键值对中字符种类的个数 P,T个数只有一个 那么m[‘P’] 1, m[‘T’] 1 代码实现 #include iostream #include string #include map using namespace std; int main() {string s;int n 0;int t 0;int p 0;cin n;int i 0;for (i 0; i n; i){cin s;map char, int m;int j 0;for (j 0; j s.size(); j){m[s[j]];//统计字符种类数以及每种字符的个数if (s[j] P){p j;}if (s[j] T){t j;}}if (m[T] 1 //T只有一个m[P] 1 //P只有一个m.size() 3 //只有PAT三种字符t - p 1 //P和T之间必须有Am[A] ! 0 //A的个数不为0p * (t - p - 1) s.length() - t - 1//P前的A * PT间的A T后的A){cout YES endl;}else{cout NO endl;}}return 0; }自己写的错误 将if (s[j] ‘P’)写成if (m[s[j]]‘P’) 分析 原意 当代码为if (s[j]P) p j;时它的原意是检查字符串s中的第j个字符是否为P。如果是就将j的值赋给变量p这里p很可能是用来记录字符P在字符串中的位置索引。 错误写法的影响及区别 当写成if (m[s[j]]P) p j;时 首先m是一个mapchar, int类型m[s[j]]会返回一个int类型的值这个值是字符s[j]在m中的计数。而P是一个字符常量。在C 中将一个int类型的值与一个字符常量进行比较是类型不匹配的操作。这种错误写法会导致程序逻辑混乱。因为它不是在检查字符串中的字符是否为P而是在检查字符s[j]在m中的计数是否等于字符P的ASCII码值实际上由于类型不匹配这种比较没有实际意义。这与原代码的功能完全不同原代码是在寻找字符串中P字符的位置而错误写法是在对一个不相关的计数进行无意义的比较。 mapchar, int m不放入循环 分析 作用域与数据复用问题 如果将mapchar, int m;放在循环外面每次循环不会重新创建一个新的m。这可能导致数据复用问题。例如在处理多个不同的输入字符串时m会累积之前字符串中字符的计数信息。如果第一个字符串是“PAT”处理完后m[P] 1m[A] 1m[T] 1。当处理下一个字符串时m已经有了之前的计数这会干扰对新字符串中字符的正确统计。 逻辑错误 从逻辑上讲程序可能会得到错误的结果。因为对于每个输入字符串都应该独立地统计其中字符的出现次数。如果m在循环外就无法保证每个字符串的统计是独立的。例如程序可能会错误地判断字符出现的次数或者满足某些条件的情况如判断是否只有特定的字符P、A、T以及它们的数量关系是否符合要求等都会因为m的复用而得出错误的结论。 漏写m[s[j]]; 代码目的 在这段代码中m[s[j]];这行代码的目的是统计字符串中每个字符出现的次数。这里m是一个mapchar, int类型的容器它的键是字符类型char值是整数类型int。当执行m[s[j]];时 如果s[j]这个字符是第一次出现在字符串中那么m[s[j]]会创建一个新的键值对键为s[j]值初始化为0然后执行操作后这个字符对应的计数就变为1表示这个字符出现了1次。如果s[j]这个字符已经在之前出现过那么m[s[j]]会直接找到对应的键值对然后执行操作将这个字符的计数加1表示这个字符又出现了一次。 这样做是为了后续判断字符串中是否只有P、A、T三种字符通过m.size()3判断以及判断P、A、T的数量是否符合要求例如m[P] 1等。 计数功能缺失 如果没有m[s[j]];这行代码首先会导致字符计数功能无法实现。假设m是用于统计字符串中字符出现次数的map原本这行代码会根据字符串中的字符s[j]在m中找到对应的键如果不存在则创建并将其对应的值加1。没有这行代码就不能对字符串中的字符进行计数。 后续判断错误 在程序后续可能存在对字符出现次数的判断逻辑。例如可能需要判断某个字符是否只出现了特定的次数或者判断不同字符出现次数之间的关系。由于没有正确统计字符出现次数这些判断都会得出错误的结果。例如如果需要判断字符串中是否只有特定的三种字符如P、A、T且数量关系符合某种规则由于没有准确的计数可能会错误地认为字符串满足或不满足条件。 代码引用 柳婼的代码
http://www.hkea.cn/news/14372128/

相关文章:

  • 网站建设 需求分析报告国内知名建筑设计公司
  • wordpress站群插件上海市建设工程咨询行业协会官网
  • 专门做音乐的网站哪些网站可以做淘宝店招
  • 电商网站建设与维护意味着什么刚刚传来最新消息
  • 网站建设的ppt模板下载p站关键词排名
  • 电信ip做的网站移动不能访问网站开发用户注册
  • 湘潭网站建设 沟通磐石网络乐山智顶网站建设
  • 网站 建设设计北京包装设计制作
  • 网站开发工作好不好广州网站优化推广公司
  • 群辉服务器做网站安全教育平台登录入口网址
  • 河北云建站网站设计行业现状
  • 网站建设如何做账制作彩票网站需要多少钱
  • 保定手机网站制作网站建设哪里有学
  • 湖北省住房和城乡建设厅网站asp.net网站开发实训
  • 建设部网站 法规如何加快网站收录
  • 重庆做网站多少钱网页版梦幻西游大闹天宫困难
  • 网站建设合同范文百度如何推广产品
  • 资金盘网站开发公司哪里好高校宣传网站建设
  • 做360网站优化优化外包顾问
  • 有模板做ppt的网站有哪些官方网站建站
  • 西宁做腋臭北大网站Y众筹网站平台建设
  • 周易八字排盘系统网站建设wordpress 开发工具
  • 网站权重是怎样进行传递的哪个网站可以接做美工的活儿
  • 网站icp没有备案怎么检查旅游类网站设计方案
  • 贵阳哪里做网站网站建设合同付款约定
  • 手机网站模版php源码自己做网站卖什么
  • 天猫旗舰店网站建设案例软文营销的方法
  • 网站搭建模板素材抖音短剧推广怎么做
  • 手机网站开发下崽wordpress内外网
  • 两个人做类似的梦 网站个体户营业执照科研做企业网站吗