循环遍历解决单词规律问题
题目描述:
给定一种规律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)
循环遍历解决单词规律问题相关推荐
- 微信小程序for循环遍历数组解决办法
最近在做微信小程序项目遇到一个问题,如下: 在wxml文件做wx:for循环遍历数组时,数组含八个元素,循环次数却只有五次,从下面代码看 <scroll-view scroll-y='true' ...
- python跳出双层for循环的解决方法
转载 python跳出双层for循环的解决方法 一.问题描述 在二维数组的遍历中,我们经常使用双层for循环.在某些时候,我们并不需要遍历整个二维数组.当条件满足时就应该终止for循环.但是,直接在内 ...
- C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...
- python3循环遍历嵌套字典替换指定值
目标:循环遍历多层嵌套的字典,找到指定的值,并将对应键的值替换成想要的值,最后输出替换后的字典. (实例中的需求: 找到字典中的 "需要被替换的值" 这个值,然后替换成 " ...
- 循环队列解决约瑟夫问题
有n个人围成一圈,从第1个人开始,1,2,-,m报数,报至m出局,余下的人继续从1,2,-,m报数,重复之前的流程,要求:求出被淘汰编号的序列,及最后剩下的一人是 原来的第几号?(要求:用循环队列解决 ...
- Objective-C 高性能的循环遍历 forin - NSEnumerator - 枚举 优化
Cocoa编程的一个通常的任务是要去循环遍历一个对象的集合 (例如,一个 NSArray, NSSet 或者是 NSDictionary). 这个看似简单的问题有广泛数量的解决方案,它们中的许多不乏 ...
- python测试框架untest怎么循环执行_unittest如何在循环遍历一条用例时生成多个测试结果...
引用自:http://blog.csdn.net/kaku21/article/details/42124593 参考网址:http://programmaticallyspeaking.com/te ...
- java循环遍历类属性_java循环遍历类属性 get 和set值方法
//遍历sqspb类 成员为String类型 属性为空的全部替换为"/" Field[] fields = sqspb.getClass().getDeclaredFields() ...
- linux中如何分割字符串数组中,关于bash:linux shell脚本:拆分字符串,将它们放入一个数组中,然后循环遍历它们...
本问题已经有最佳答案,请猛点这里访问. Possible Duplicate: Split string based on delimiter in Bash? 在bash脚本中,如何使用像;这样的分 ...
最新文章
- linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
- 点击某个a标签,禁止页面自动跳转到该页面的顶部
- php基本语法 格式,PHP 基本语法格式
- NodeJS获取命令行后面的参数
- 3d激光雷达开发(法向量预测)
- 深入理解IIS工作原理
- 判断wifi连接是否可用
- 将输出结果以json类型打印在控制台上_系列文章:Kubernetes中日志的正确输出姿势...
- 如何获取JVM的dump文件
- c++ 两个栈实现一个队列
- js高级--jsonp跨域
- 仿XP画图板开发-解决布局问题
- springboot定时器 + Javamail + 心知天气API (通过邮件每天给女朋友发送一句情话+当日天气信息+当日生活指数)
- 焊接机器人比传统手工焊接有哪些优势
- 涛思数据创始人陶建辉荣获“2020中国开源杰出贡献人物”奖
- 【转发】晶圆到底是什么?台积电为什么被称为晶圆厂?
- springboot不停机更新(配合Nginx优雅发版)
- 【征文大赛】TiDB 社区第二届征文大赛,一次性带走社区全部新周边,还有bose 降噪耳机、倍轻松按摩仪等你拿!
- 【Yocto学习入门】01 - Yocto简介
- springboot整合Redis+elasticsearch时的异常问题
热门文章
- 支付系统设计三:渠道网关设计02-客户端报文解析
- Web 连接远程桌面(3389登陆器) 网页版
- IT软件开发常用英语词汇
- 扬眉吐气!告别GPS,北斗地图APP预计5月1日上线
- 基于matlab的线性调频信号(lfm)脉冲压缩仿真
- 桌面计算机图标变黑块,win10桌面图标黑块怎么修复_w10电脑桌面图标变黑如何处理...
- 不能进入windows xp系统如何进行系统还原
- 3-Intermediate-SQL-Server
- 美狐人脸识别SDK技术,人脸检测SDK技术达到实时美颜滤镜的效果
- 抚州全国计算机二级报名入口,2021上半年抚州市计算机二级报名时间|网上报名入口【已开通】...