首页 > 其他分享 >每日OJ_牛客_单词倒排(字符串模拟)

每日OJ_牛客_单词倒排(字符串模拟)

时间:2024-09-09 20:51:40浏览次数:11  
标签:mapB ch OJ 倒排 单词 牛客 字符串

目录

牛客_单词倒排(字符串模拟)

解析代码


牛客_单词倒排(字符串模拟)

单词倒排__牛客网

时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M

题目描述:

对字符串中的所有单词进行倒排。

说明:

1、构成单词的字符只有26个大写或小写英文字母;

2、非构成单词的字符均视为单词间隔符;

3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;

4、每个单词最长20个字母;

数据范围:字符串长度满足 1≤n≤10000 

输入描述:

输入一行,表示用来倒排的句子

输出描述:

输出句子的倒排结果

示例1

输入

I am a student

输出

student a am I

示例2

输入

$bo*y gi!r#l

输出

l r gi y bo

解析代码

思路:

  1. 先切分(切分前先对分割符做处理, 统一分割符) , 此时可以使用 stringstream 进行切分。
  2. 再合并(对切分结果逆序合并) 直接字符串拼接合并即可。
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;

int main()
{
    string strA;
    string strB;
    unordered_map<char, int> mapA;
    unordered_map<char, int> mapB;
    while(cin >> strA >> strB)
    {
        mapA.clear();
        mapB.clear();
        //统计次数
        for(auto& ch :strA)
        mapA[ch]++;
        for(auto& ch : strB)
        mapB[ch]++;
        bool ret = true;
        //遍历字符串B
        for(auto& ch : strB)
        {
            if(mapA[ch] < mapB[ch])
            {
                ret = false;
                break;
            }
        }
        if(ret)
            cout << "Yes" <<endl;
        else
            cout << "No"<<endl;
    }
    return 0;
}

标签:mapB,ch,OJ,倒排,单词,牛客,字符串
From: https://blog.csdn.net/GRrtx/article/details/142065470

相关文章

  • 牛客小白月赛100
    A-ACM中的A题#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;#defineinti64usingvi=vector<int>;constintN=10;chars[N];i32main(){inta,b,c;cin>>a>>b>>......
  • COMP41760 Business Analytics Project
    Business Analytics Project ReportSummative Assignment BriefVersionApril 2024CourseworkAdministrativeDetailsModule Name and Code:COMP41760 BusinessAnalytics ProjectAssignmentName:Project ReportDeadlineforsubmission:......
  • 信奥OJ的搭建
     第一步,服务器申请选择一:免费云服务器,免费虚拟主机如:阿贝云阿贝云提供了免费的云服务器和免费的云虚拟主机,可根据自己的实际应用情况选择。首先注册一个账户,然后需要支付0.3元做一个实名认证,如果实名认证成功了大概率会开通成功。如果失败了可能是服务器资源池......
  • 牛客周赛 Round 59(下)
    逆序数题目描述登录—专业IT笔试面试备考平台_牛客网运行代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;intmain(){lln,k;cin>>n>>k;llsum=(n*(n-1))/2;cout<<sum-k<<endl;return0;}代码思路组合数的计算:在......
  • 【数据结构】栈与队列OJ题(用队列实现栈)(用栈实现队列)
    目录1.用队列实现栈oj题对比一、初始化二、出栈 三、入栈四、取队头元素:2.用栈实现队列 一、定义二、入队列三、出队列四、队头五、判空                                      ......
  • BZOJ 1396 识别子串 题解
    Statement给\(S\),令\(x\)为\(S\)的第\(k\)个字符,称\(T=S[i..j]\)为关于\(x\)的识别子串,当且仅当:\(i\lek\lej\)(含\(x\)这一位)\(T\)在\(S\)中只出现一次求\(S\)关于每一位字符的最短识别子串长度,\(|S|\le10^5\).Solution1以下是我没看题解瞎胡的首先......
  • BZOJ 4231 回忆树
    以下为自己口胡,未经网上搜索题解验证Statement一棵\(n\)个点的树,每条边有一个小写字母边权,\(m\)次询问,每次给定\(u,v,s\),问字符串\(s\)在\(u\tov\)路径组成的字符串中出现了几次。\(n,m\le10^5,\sum|s|\le3\cdot10^5\).SolutionSol1把\(u\tov\)路径拆成\(u\t......
  • BZOJ 3796 Mushroom追妹纸 题解
    Statement给\(s_1,s_2,s_3\),求最长的\(w\)的长度,满足\(w\)是\(s_1\)子串\(w\)是\(s_2\)子串\(s_3\)不是\(w\)子串Solution1以下是我没看题解瞎胡的首先一个弱智想法是,枚举\(s_1\)上\(w\)的左端点,二分右端点,判定时\(s_2\)用SAM,\(s_3\)用单串AC自动......
  • BZOJ 4502 串 题解
    妙妙数数题key:数数题通常是,对于特定形式的计数,就盯着这个模式观察,看出一些充要条件、计数形式的转化,然后想办法维护。优化的本质就是把难算的变成好算的,把不好一起统计的(只能一个个数的)以某种角度、用某些数据结构,一起统计(多个多个数)。我觉得难点通常在于“盯出一些充要条件”,......
  • LOJ4218 「IOI2024」尼罗河船运 题解
    题目描述有\(n\)件手工艺品,第\(i\)件重量为\(w_i\),有参数\(a_i\)和\(b_i\)。每艘船最多可以运输两件手工艺品:如果只运输第\(i\)件,重量没有要求,代价为\(a_i\)。如果同时运输第\(i\)和第\(j\)件,要求\(|w_i-w_j|\leD\),代价\(b_i+b_j\)。\(q\)次询问,给......