zoukankan      html  css  js  c++  java
  • 找位置

    题目截图:

    思路:

      令 asc[i][j] 表示第 j 个 ascii 码为 i 的字符在字符串中的位置,其中 asc[i][0] 存储 ascii 码为 i 的字符在字符串中的个数。另外,由于要根据输入前后决定输出字符位置,需要设置 c[] 来存储字符第一次出现时的位置前后。最后,将个数大于 1 的字符按要求输出即可。

    代码如下:

     1 /*
     2     找位置 
     3 */
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include <math.h>
     8 #include <stdlib.h>
     9 #include <time.h>
    10 
    11 char str[101];            // 存储输入字符 
    12 char c[101];            // 存储字符第一次出现前后 
    13 int asc[256][101]; // asc[i][j] 表示第 j 个 ascii 码为 i 的字符在字符串中的位置
    14 
    15 int main() {
    16     while(scanf("%s", str) != EOF) {
    17         memset(asc, 0, sizeof(asc));        // 初始化 asc 数组 
    18         int i, j, k=0;
    19         for(i=0; i<strlen(str); ++i) {        // 遍历字符串的每个字符 
    20             if(asc[str[i]-''][0]==0) {    // 字符第一次出现 
    21                 c[k++] = str[i];
    22             }
    23             asc[str[i]-''][0]++;            // 字符出现次数 +1 
    24             // 记录字符位置 
    25             asc[str[i]-''][asc[str[i]-''][0]]=i;
    26         } 
    27         for(i=0; i<k; ++i) {                // 遍历每个不同字符 
    28             int ascii = c[i]-'';            // 求字符 ASCII 码 
    29             if(asc[ascii][0] > 1) {            // 若有重复
    30                 // 按格式输出 
    31                 for(j=1; j<=asc[ascii][0]; ++j) {
    32                     printf("%c:%d", c[i], asc[ascii][j]);
    33                     if(j < asc[ascii][0]) {
    34                         printf(","); 
    35                     }
    36                 }
    37                 printf("
    "); 
    38             }
    39         }
    40     } 
    41 
    42     return 0;
    43 }
  • 相关阅读:
    模板、中间件以及MVC与MTV
    Cookie与Session
    分页与网页攻击
    Django一对一查询,列类型及参数
    Django ORM 查询
    Django中ORM多对多表的操作
    Django中的ORM
    一、Vue简介
    三、路由层(urls.py)
    二、django简介
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/HustTest25.html
Copyright © 2011-2022 走看看