单词规律

此博客链接:https://www.cnblogs.com/ping2yingshi/p/14054909.html

单词规律

题目链接:https://leetcode-cn.com/problems/word-pattern/

题目

给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。

这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。

示例1:

输入: pattern = "abba", str = "dog cat cat dog"
输出: true
示例 2:

输入:pattern = "abba", str = "dog cat cat fish"
输出: false
示例 3:

输入: pattern = "aaaa", str = "dog cat cat dog"
输出: false
示例 4:

输入: pattern = "abba", str = "dog dog dog dog"
输出: false
说明:
你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。    

题解

思路:定义一个map来存Pattern中的每个字母,和相同字母的下标。判断给的字符串中在同一个字母中的下标位置中单词否相等。

方法:

        1.定义一个map,key为String类型,value为ArraryList类型。

        2.map的Key存储pattern中的字母,value中存储相同字母的下标。

        3.把字符串s以空格分开以数组存储分开的单词。

        4.判断map中每个key值对应的value中的ArraryList中的Index在单词数组中是否全部相等 。

代码

class Solution {
    public boolean wordPattern(String pattern, String s) {
        Map <String,ArrayList> map=new HashMap();
        for(int i=0;i<pattern.length();i++)
        {
            ArrayList list=new ArrayList();
            String ch = pattern.charAt(i) + "";
            if(map.get(ch)==null)
            {
                list.add(i);
                map.put(ch,list); 
                
                // map.put(ch,list.push(i));
            }
            else{
                map.get(ch).add(i);
                ///map.put(ch,list.push(i));
            }
           
        }
        String str []=s.split(" ");
        // map.keyset
        // for(int i=0;i<map.size(),i++){
        //     int k=map.get(map.keyset(i)).size();

             
        // }
        for(String tem:map.keySet())
        {
               int k=map.get(tem).size();
               ArrayList list = map.get(tem);
            //    for(Integet index:list){

            //    }
               for(int i=0;i<k-1;i++)
               {
                   
                       if(str[Integer.parseInt(list.get(i))]!=str[Integer.parseInt(list.get(i+1))])
                       {
                           return false;
                       }
                   
               }
        }
        return true;

    }
}

问题

显示不能把对象转换成字符串。

出来混总是要还的
原文地址:https://www.cnblogs.com/ping2yingshi/p/14054909.html