题目描述:

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

比如:pattern = "abba" , str = "dog cat cat dog",此时遵循相同的规律,输出为true。

算法思想:

如果字符串str中非空字符的长度不等于字符串pattern的长度,则两者就不可能遵循相同的规律;否则,遍历字符串,判断对应规律是否相同,若存在不相同,则两者不遵循相同的规律。

算法java实现:

public static boolean wordPattern(String pattern, String s) {String[] array = s.split(" ");if (array.length != pattern.length()){return false;}for (int i=0;i<pattern.length()-1;i++){for (int j=i+1;j<pattern.length();j++){if (pattern.charAt(i) == pattern.charAt(j)){if (!array[i].equals(array[j])) {return false;}}else {if (array[i].equals(array[j])) {return false;}}}}return true;}
  • 值得注意的是判断字符串是否相等,最好使用equals()方法
  • java使用==和equals()判断字符串是否相等

算法分析:

  • 时间复杂度:O(n2),假设字符串长度为n
  • 空间复杂度:O(n)

循环遍历解决单词规律问题相关推荐

  1. 微信小程序for循环遍历数组解决办法

    最近在做微信小程序项目遇到一个问题,如下: 在wxml文件做wx:for循环遍历数组时,数组含八个元素,循环次数却只有五次,从下面代码看 <scroll-view scroll-y='true' ...

  2. python跳出双层for循环的解决方法

    转载 python跳出双层for循环的解决方法 一.问题描述 在二维数组的遍历中,我们经常使用双层for循环.在某些时候,我们并不需要遍历整个二维数组.当条件满足时就应该终止for循环.但是,直接在内 ...

  3. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  4. python3循环遍历嵌套字典替换指定值

    目标:循环遍历多层嵌套的字典,找到指定的值,并将对应键的值替换成想要的值,最后输出替换后的字典. (实例中的需求: 找到字典中的 "需要被替换的值" 这个值,然后替换成 " ...

  5. 循环队列解决约瑟夫问题

    有n个人围成一圈,从第1个人开始,1,2,-,m报数,报至m出局,余下的人继续从1,2,-,m报数,重复之前的流程,要求:求出被淘汰编号的序列,及最后剩下的一人是 原来的第几号?(要求:用循环队列解决 ...

  6. Objective-C 高性能的循环遍历 forin - NSEnumerator - 枚举 优化

    Cocoa编程的一个通常的任务是要去循环遍历一个对象的集合  (例如,一个 NSArray, NSSet 或者是 NSDictionary). 这个看似简单的问题有广泛数量的解决方案,它们中的许多不乏 ...

  7. python测试框架untest怎么循环执行_unittest如何在循环遍历一条用例时生成多个测试结果...

    引用自:http://blog.csdn.net/kaku21/article/details/42124593 参考网址:http://programmaticallyspeaking.com/te ...

  8. java循环遍历类属性_java循环遍历类属性 get 和set值方法

    //遍历sqspb类 成员为String类型 属性为空的全部替换为"/" Field[] fields = sqspb.getClass().getDeclaredFields() ...

  9. linux中如何分割字符串数组中,关于bash:linux shell脚本:拆分字符串,将它们放入一个数组中,然后循环遍历它们...

    本问题已经有最佳答案,请猛点这里访问. Possible Duplicate: Split string based on delimiter in Bash? 在bash脚本中,如何使用像;这样的分 ...

最新文章

  1. linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
  2. 点击某个a标签,禁止页面自动跳转到该页面的顶部
  3. php基本语法 格式,PHP 基本语法格式
  4. NodeJS获取命令行后面的参数
  5. 3d激光雷达开发(法向量预测)
  6. 深入理解IIS工作原理
  7. 判断wifi连接是否可用
  8. 将输出结果以json类型打印在控制台上_系列文章:Kubernetes中日志的正确输出姿势...
  9. 如何获取JVM的dump文件
  10. c++ 两个栈实现一个队列
  11. js高级--jsonp跨域
  12. 仿XP画图板开发-解决布局问题
  13. springboot定时器 + Javamail + 心知天气API (通过邮件每天给女朋友发送一句情话+当日天气信息+当日生活指数)
  14. 焊接机器人比传统手工焊接有哪些优势
  15. 涛思数据创始人陶建辉荣获“2020中国开源杰出贡献人物”奖
  16. 【转发】晶圆到底是什么?台积电为什么被称为晶圆厂?
  17. springboot不停机更新(配合Nginx优雅发版)
  18. 【征文大赛】TiDB 社区第二届征文大赛,一次性带走社区全部新周边,还有bose 降噪耳机、倍轻松按摩仪等你拿!
  19. 【Yocto学习入门】01 - Yocto简介
  20. springboot整合Redis+elasticsearch时的异常问题

热门文章

  1. 支付系统设计三:渠道网关设计02-客户端报文解析
  2. Web 连接远程桌面(3389登陆器) 网页版
  3. IT软件开发常用英语词汇
  4. 扬眉吐气!告别GPS,北斗地图APP预计5月1日上线
  5. 基于matlab的线性调频信号(lfm)脉冲压缩仿真
  6. 桌面计算机图标变黑块,win10桌面图标黑块怎么修复_w10电脑桌面图标变黑如何处理...
  7. 不能进入windows xp系统如何进行系统还原
  8. 3-Intermediate-SQL-Server
  9. 美狐人脸识别SDK技术,人脸检测SDK技术达到实时美颜滤镜的效果
  10. 抚州全国计算机二级报名入口,2021上半年抚州市计算机二级报名时间|网上报名入口【已开通】...