判断一个字符串数组是否能组成首尾相连的环
题目
输入一组字符串 判断字符串是否组成环
例如:
输入:aes dwewe ea sd
输出:true
输入:as st ta
输出:false
解题思路
总体思想就是当前字符串找到一个能连接的就继续找能接上的,最后原字符串数组只剩下一个字符串的时候,一个的首是否等于另一个尾。满足就是环。
解体方法
从某一个字符串A开始 判断当前 A的末尾字符 与除A外的其他字符头是否相等?假设存在B满足上述,那么B的末尾判断除A B外剩下的list(移除A、B)。如果一直满足上述,说明一直有字符串可以连接。最后list变成只有一个字符串的时候,判断当前字符串与A是否可以组成环。 两字字符串可以组成环,说明一个的首字符等于另一个的尾。 因为判断环 有环的话 就是从环内任何一个字符串开始 最后都能将list变为只有一个字符的。
源代码
import java.util.*;public class StrOrgEnd {public static void main(String[] args) {System.out.println(isContainsRing(new String[]{"ab", "bf", "ga", "fg"}));}private static boolean isContainsRing(String[] str) {List<String> list = new ArrayList<>(Arrays.asList(str));String s = list.get(0);//取出第一个字符串char c = s.charAt(0);list.remove(0);if (findCircle(s, list, c)) {return true;} else {return false;}}private static boolean findCircle(String s, List<String> strlist, char c) {if (strlist.size() == 1 && c == strlist.get(0).charAt(strlist.get(0).length() - 1))//字符串数组长度为2,并且能形成环if (s.charAt(s.length() - 1) == strlist.get(0).charAt(0))return true;char tail = s.charAt(s.length() - 1);for (int i = 0; i < strlist.size(); i++) {if (tail == strlist.get(i).charAt(0)) {List<String> newlist = new ArrayList<>(strlist);newlist.remove(i);//匹配则删除第i个字符串if (findCircle(strlist.get(i), newlist, c)) {return true;}}}return false;}
}
判断一个字符串数组是否能组成首尾相连的环相关推荐
- java怎么统计随机数出现次数,Excel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字...
延伸:java中怎么判断一个字符串中包含某个字符或字符 描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? JAVA判断字符串数组中是否包含某字符 ...
- 判断一个字符串是否为另外一个字符串旋转之后的字符串。
★判断一个字符串是否为另外一个字符串旋转之后的字符串. 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0. AABCD左旋一个字符得到ABCDA ...
- c语言用递归法判断回文字符串,递归方式判断一个字符串是否为回文字符串
/* * 递归方式判断一个字符串是否为回文字符串 */ public class PartitionTest{ public static void main(String[] args) { Str ...
- 判断一个字符串大写小写,和数字出现的次数
/*** 判断一个字符串大写小写,和数字出现的次数*/ public class Demo4 {public static void main(String[] args) {String str = ...
- java 判断数字_如何在java中判断一个字符串是否是数字
前言 数字在某些领域经常用字符串来进行表示和传递.那么我们如何判断一个字符串是否是数字呢?今天我们来探讨一下这个话题. 空字符和null 首先我们可以很清晰的知道空字符""和nul ...
- java判断一个字符串对象是否在一个集合里面
最初遇到的这个小问题是,如何判断一个字符串是否在一个字符串数组里面? private static boolean isBelongList(String str){ String[] strArra ...
- 判断一个字符串是否为全字母句
判断一个字符串是否为全字母句 LeetCode Day 2 题目:给一个仅由小写英文字母组成的字符串 sentence ,判断 sentence 是否为全字母句.如果是,返回 true :否则,返回 ...
- 如何在java中判断一个字符串是否是数字
前言 数字在某些领域经常用字符串来进行表示和传递.那么我们如何判断一个字符串是否是数字呢?今天我们来探讨一下这个话题. 空字符和null 首先我们可以很清晰的知道空字符""和nul ...
- 判断一个字符串是否对称
判断一个字符串是否对称 如一个字符串"abcba",就是对称的 而"abcda"之类的,就不是对称的: 意思就是两个字符串对折起来之后能重合的就是对称.. 具体 ...
最新文章
- python打砖块游戏算法设计分析_python实现打砖块游戏
- golang 系统调用 syscall 简介
- HTML DOM Event 对象
- 邮箱的创建及配置:Exchange2003系列之二
- maven的环境搭建
- FFMPEG解码264文件步骤
- 授人以鱼不如授人以渔,UCHome全面大解析培训活动【第三集】
- java演练 数组的逆序文字玩法 你是猪才怪
- 机器学习笔记(六):数据归一化 | 凌云时刻
- IOS - UITableView分批显示数据 实现点击加载更多
- C# 根据EXCEL自动生成oracle建表语句
- 【爬虫专栏17】多线程爬双色球
- 解决游戏程序被恶意“游戏启动器”替代的问题
- 北京智和信通企业级网络流量监控方案
- 地级市面板数据一(2000-2019):国民经济核算+人口结构+各行业从业人员(stata版)
- date_sub函数用法-----随笔记
- Soft Diffusion
- kafka(1) 初识
- LCD Keypad Shield
- 集合4:方法-仅适用于set