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

nowcoder---统计子串个数(C语言)

问题描述

在庆祝祖国母亲70华诞之际,老师给小乐乐出了一个问题。大家都知道China的英文缩写是CHN,那么给你一个字符串s,你需要做的是统计s中子串“CHN”的个数。

子串的定义:存在任意下标a < b < c,那么“s[a]s[b]s[c]”就构成s的一个子串。如“ABC”的子串有“A”、“B”、“C”、“AB”、“AC”、“BC”、“ABC”。

输入描述:输入只包含大写字母的字符串s。(1 ≤ length ≤ 8000)

输出描述:输出一个整数,为字符串s中字串“CHN”的数量。

示例1

输入:CCHNCHN

输出:7

示例2

输入:CCHNCHNCHNCHN

输出:30

问题分析

本题需要注意的是,这里的子串的定义与我们之前遇到的子串的定义有所区别。这里的子串,之间可以空几个字符,如“ABC”的子串“AC”。

解题思路:找到H判断H前边有几个C,找到N判断前边有几个CHN,最终CHN的总个数就是子串个数。

C语言程序

#include<stdio.h>

int main()
{
    //注意这里子串的定义和我们经常使用的子串的定义不同
    //不知道要输入的字符的个数,因此只能根据最大值进行定义
    char str[8000];
    scanf("%s",str);
    //注意:如果循环中使用str数组名,则无法进行str++操作,因此需要定义一个指针
    char* p = str;
    //找到H判断H前边有几个C,找到N判断前边有几个CHN,最终CHN的总个数就是子串个数
    long long c=0,ch=0,chn=0;
    while(*p)
    {
        if(*p == 'C')
        {
            c++;
        }
        else if(*p == 'H')
        {
            ch += c;
        }
        else if(*p == 'N')
        {
            chn += ch;
        }
        p++;
    }
    printf("%lld",chn);
    return 0;
}

 

相关文章:

  • LeetCode---搜索二维矩阵(c语言)
  • C语言编程过程中与到的问题(不定时更新)
  • 计算机中加减乘除的实现
  • Linux基本指令+使用举例、权限的认识和相关指令、Linux添加删除用户、shell的理解(超详细)
  • Linux连接网络、修改账户密码
  • LeetCode---删除排序数组中的重复项(C语言)
  • LeetCode---合并两个有序数组
  • leetcode---返回链表的中间节点
  • 学生成绩管理系统---数据结构、C语言课程设计
  • 数据结构课程设计---学生成绩管理系统
  • leetcode---环形链表(快慢指针证明)
  • leetcode---环形链表II
  • 剑指offer---复制带随机值的链表
  • Linux---进程概念
  • 数据结构---顺序表和链表
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [数据结构]链表的实现在PHP中
  • 2017年终总结、随想
  • iOS 系统授权开发
  • laravel with 查询列表限制条数
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • sessionStorage和localStorage
  • Spring Cloud Feign的两种使用姿势
  • Vim 折腾记
  • vue:响应原理
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • XForms - 更强大的Form
  • 分布式任务队列Celery
  • 搞机器学习要哪些技能
  • 基于组件的设计工作流与界面抽象
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 如何设计一个微型分布式架构?
  • 设计模式走一遍---观察者模式
  • 深入浅出webpack学习(1)--核心概念
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 微服务框架lagom
  • 无服务器化是企业 IT 架构的未来吗?
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • zabbix3.2监控linux磁盘IO
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (1)STL算法之遍历容器
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (3)选择元素——(17)练习(Exercises)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • .apk文件,IIS不支持下载解决
  • .Net MVC + EF搭建学生管理系统
  • .net web项目 调用webService
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET连接数据库方式
  • .net项目IIS、VS 附加进程调试
  • @ModelAttribute使用详解