zoukankan      html  css  js  c++  java
  • 360笔试题-字符置换

    题目描述

    字符串由"."和ASCII码字母构成,若每次操作将字符串中出现连续两个“.”,则以“.”替代,则可以将函数f(s)定义为使得串中不出现连续2个“.”的最小置换次数。

    现考虑m个字符替换操作,每次将指定位置的字符替换为给定字符,求替换后函数的f(s)的值。

    输入:

    输入有若干组,第一行为2个整数n和m,n表示字符串长度,m表示字符替换次数。

    第二行为长度为n的字符串。

    接下来m行为m次字符替换操作。

    输出:

    对m次字符替换操作,输出m行结果,每行表示替换后的f(s)的结果。

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 int f(char *s, int len) {
     4     int cnt = 0;
     5     for (int i = 1; i < len; i++) {
     6         if (s[i] == '.' && s[i-1] == '.') cnt++;
     7     }
     8     return cnt;
     9 }
    10 int main () {
    11     int n,m;
    12     char *s;
    13     while (scanf("%d%d", &n, &m) == 2) {
    14         s = (char *)malloc(sizeof(char)*n);
    15         scanf("%s",s);
    16         int idx;
    17         char c;
    18         while (m--) {
    19             scanf("%d%c",&idx, &c);
    20             s[idx-1] = c;
    21             printf("%d
    ", f(s, n));
    22         }
    23     }
    24     return 0;
    25 }
  • 相关阅读:
    mysql中事务隔离级别可重复读说明
    Zookeeper安装与启动
    PHP闭包之bind和bindTo
    使用WebPack打包
    用Python下载momentum中的精美壁纸
    supervisor使用
    Shell脚本:RedisKey批量删除
    使用Certbot配置站点的https
    PHPfmt代码格式化
    创建用私钥签名的证书
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/5334683.html
Copyright © 2011-2022 走看看