• LeetCode()Word Pattern


    为什么我的算法不对呢,ab 可以检测,但超过两个不同的,就不对了

    先写在这里,哪天有思路了再看看

    // LeetCode.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include<iostream>
    #include<vector>
    #include<map>
    #include<unordered_map>
    #include<string>
    using namespace std;
    /**/
    class Solution {
    public:
    	bool wordPattern(string pattern, string str) {
    		int n = 0;
    		for (int i = 0; i < str.size(); i++)
    			if (str[i] == ' ')
    				n++;
    		//cout << n << pattern.size();
    		if (n + 1 != pattern.size())
    			return false;
    		unordered_map<string, string> map;
    		for (int i = 0; i<pattern.size(); ++i)
    		{
    			
    			int wei = str.find(" ");
    			string t = str.substr(0, wei);
    			str = str.substr(wei + 1);			
    			auto d = map.find(""+pattern[i]);
    			if (d != map.end() && map["" + pattern[i]] != t)
    				return false;
    			else if (d != map.end() && map["" + pattern[i]] == t)
    				continue;
    			else if (d == map.end()) {
    				for (auto k : map)
    				{
    					if (k.second == t)
    						return false;
    				}
    			}		
    			map[""+pattern[i]] = t;
    		}
    		return true;
    	}
    };
    void print(string str) {
    	for (int i = 0; i < 4; ++i)
    	{
    		string t = str.substr(0, str.find(" "));
    		int wei = str.find(" ");
    		str = str.substr(wei + 1);
    		cout << t << endl;
    	}
    }
    int main()
    {
    	Solution s;
    	if (s.wordPattern("abbbac", "aa bb bb bb aa cc" ))
    		cout << "ok";
    //	print("aa dd kk ss");
    	system("pause");
    	
        return 0;
    }
    

      把map<string,string> 改成 map<char,string> 然后把""+去掉,就可以了,为什么呢?运行时间0ms 开心,但为什么string 就有问题呢?

    跟map 有关系吧

  • 相关阅读:
    zimg
    ffmpeg P016 P010 YUV444P16LE 的打印的像素值
    zimg 使用
    P010LE P016LE YUV420P10LE
    如鹏网学习笔记(八)CSS
    对dui界面 组件 hook的通杀方案
    Python 中str 与 bytes 数据结构转换
    Tensorflow 老版本的安装
    Java string和各种格式互转 string转int int转string
    电脑黑屏
  • 原文地址:https://www.cnblogs.com/yanqi110/p/4990464.html
Copyright © 2020-2023  润新知