290. 单词规律

290. 单词规律


题目链接:290. 单词规律

代码如下:

cpp 复制代码
class Solution {
public:
    bool wordPattern(string pattern, string s) {
        unordered_map<char,string> um;
        vector<string> strs;
        string str="";

        //把字符串中单词都保存到集合中
        for(int i=0;i<s.size();i++)
        {
            if(s[i]==' ')
            {
                strs.push_back(str);
                str="";
            }
            else
            {
                str+=s[i];
            } 
        }
        strs.push_back(str);

        //二者长度不同直接返回即可
        if(pattern.size()!=strs.size())
            return false;

        逐个对比
        for(int i=0;i<pattern.size();i++)
        {
            //未找到的情况
            if(um.find(pattern[i])==um.end())
            {
                看是否已于别的字母建立联系,是的话就直接返回,不满住一对一了
                for(auto it=um.begin();it!=um.end();it++)
                {
                    if(it->second==strs[i])
                        return false;
                }

                //插入
                um[pattern[i]]=strs[i];
            }
            //不满足一对一直接返回
            else if(strs[i]!=um[pattern[i]])
                return false;
        }

        return true;

    }
};
相关推荐
cpp_learners2 小时前
QML与C++交互之创建自定义对象
c++·qt·qml
尘世闲鱼2 小时前
解数独(C++版本)
开发语言·c++·算法·解数独
kyle~3 小时前
C/C++字面量
java·c语言·c++
Mr.Winter`4 小时前
轨迹优化 | 基于激光雷达的欧氏距离场ESDF地图构建(附ROS C++仿真)
c++·人工智能·机器人·自动驾驶·ros·ros2·具身智能
csdn_aspnet4 小时前
C++ n条水平平行线与m条垂直平行线相交的平行四边形的数量
c++
闻缺陷则喜何志丹4 小时前
【BFS】 P10864 [HBCPC2024] Genshin Impact Startup Forbidden II|普及+
c++·算法·宽度优先·洛谷
qianbo_insist5 小时前
c++ python 共享内存
开发语言·c++·python
Coding小公仔5 小时前
LeetCode 151. 反转字符串中的单词
开发语言·c++·算法
稳兽龙5 小时前
P1098 [NOIP 2007 提高组] 字符串的展开
c++·算法·模拟