zoukankan      html  css  js  c++  java
  • 7-44 基于词频的文件相似度 (30分)--map

    代码来源

     1 #include<iostream>
     2 #include <map>
     3 #include <iomanip>
     4 #include <string>
     5 #include <cstring>
     6 using namespace std;
     7 map<string, bool>m[101];//如果第i个文件存在单词word,则m[i][word] = true;
     8 int same[101][101] = { 0 };
     9 int num[101] = { 0 };
    10 int main()
    11 {
    12     int N;
    13     cin >> N;
    14     for (int i = 1; i <= N; i++)
    15     {
    16         char ch;
    17         int cnt = 0;
    18         char t_word[11];
    19         while ((ch = toupper(cin.get())) != '#')//统一转换为大写字母
    20         {
    21             if (ch >= 'A' && ch <= 'Z')
    22             {
    23                 if (cnt < 10) t_word[cnt++] = ch;/*如果cnt>=10,则cnt不会增加,停留在第10个字母后边,
    24                                                  直至遇到第一个非字母时将t_word[cnt]置为''*/
    25             }
    26             else
    27             {
    28                 t_word[cnt] = '';
    29                 if (cnt >= 3)
    30                 {
    31                     m[i][t_word] = true;
    32                 }
    33                 cnt = 0;
    34             }
    35         }
    36         map<string, bool>::iterator it;
    37         for (it = m[i].begin(); it != m[i].end(); it++)
    38         {
    39             for (int j = 0; j < i; j++)//判断是否有相同的单词,每有一个sam[i][j]就加一
    40             {
    41                 if (m[j][it->first] == true)
    42                     same[i][j] = same[j][i] += 1;
    43                 else
    44                     same[i][j] = same[j][i] += 0;
    45             }
    46         }
    47         same[i][i] = num[i] = m[i].size();
    48     }
    49     int M;
    50     cin >> M;
    51     for (int i = 0; i < M; i++)
    52     {
    53         int a, b;
    54         cin >> a >> b;
    55         cout << fixed << setprecision(1) << same[a][b] * 100.0 / (1.0 * (num[a] + num[b] - same[a][b])) << '%' << endl;
    56     }
    57     return 0;
    58 }
  • 相关阅读:
    underscore.js,jquery.js源码阅读
    css3动画知识点
    ajax防止重复提交
    jquery data属性的使用
    文字换行
    vue的生命周期
    iphone与安卓的兼容性问题汇总
    python 上下文管理器
    form 校验
    常用的字段和字段参数
  • 原文地址:https://www.cnblogs.com/2020R/p/12796787.html
Copyright © 2011-2022 走看看