题目
输入一组字符串 判断字符串是否组成环
例如:
输入: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;}
}

判断一个字符串数组是否能组成首尾相连的环相关推荐

  1. java怎么统计随机数出现次数,Excel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字...

    延伸:java中怎么判断一个字符串中包含某个字符或字符 描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? JAVA判断字符串数组中是否包含某字符 ...

  2. 判断一个字符串是否为另外一个字符串旋转之后的字符串。

    ★判断一个字符串是否为另外一个字符串旋转之后的字符串. 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0. AABCD左旋一个字符得到ABCDA ...

  3. c语言用递归法判断回文字符串,递归方式判断一个字符串是否为回文字符串

    /* * 递归方式判断一个字符串是否为回文字符串 */ public class PartitionTest{ public static void main(String[] args) { Str ...

  4. 判断一个字符串大写小写,和数字出现的次数

    /*** 判断一个字符串大写小写,和数字出现的次数*/ public class Demo4 {public static void main(String[] args) {String str = ...

  5. java 判断数字_如何在java中判断一个字符串是否是数字

    前言 数字在某些领域经常用字符串来进行表示和传递.那么我们如何判断一个字符串是否是数字呢?今天我们来探讨一下这个话题. 空字符和null 首先我们可以很清晰的知道空字符""和nul ...

  6. java判断一个字符串对象是否在一个集合里面

    最初遇到的这个小问题是,如何判断一个字符串是否在一个字符串数组里面? private static boolean isBelongList(String str){ String[] strArra ...

  7. 判断一个字符串是否为全字母句

    判断一个字符串是否为全字母句 LeetCode Day 2 题目:给一个仅由小写英文字母组成的字符串 sentence ,判断 sentence 是否为全字母句.如果是,返回 true :否则,返回 ...

  8. 如何在java中判断一个字符串是否是数字

    前言 数字在某些领域经常用字符串来进行表示和传递.那么我们如何判断一个字符串是否是数字呢?今天我们来探讨一下这个话题. 空字符和null 首先我们可以很清晰的知道空字符""和nul ...

  9. 判断一个字符串是否对称

    判断一个字符串是否对称 如一个字符串"abcba",就是对称的 而"abcda"之类的,就不是对称的: 意思就是两个字符串对折起来之后能重合的就是对称.. 具体 ...

最新文章

  1. python打砖块游戏算法设计分析_python实现打砖块游戏
  2. golang 系统调用 syscall 简介
  3. HTML DOM Event 对象
  4. 邮箱的创建及配置:Exchange2003系列之二
  5. maven的环境搭建
  6. FFMPEG解码264文件步骤
  7. 授人以鱼不如授人以渔,UCHome全面大解析培训活动【第三集】
  8. java演练 数组的逆序文字玩法 你是猪才怪
  9. 机器学习笔记(六):数据归一化 | 凌云时刻
  10. IOS - UITableView分批显示数据 实现点击加载更多
  11. C# 根据EXCEL自动生成oracle建表语句
  12. 【爬虫专栏17】多线程爬双色球
  13. 解决游戏程序被恶意“游戏启动器”替代的问题
  14. 北京智和信通企业级网络流量监控方案
  15. 地级市面板数据一(2000-2019):国民经济核算+人口结构+各行业从业人员(stata版)
  16. date_sub函数用法-----随笔记
  17. Soft Diffusion
  18. kafka(1) 初识
  19. LCD Keypad Shield
  20. 集合4:方法-仅适用于set

热门文章

  1. 拒绝服务攻击过程详解
  2. TL-WR941N路由器刷DD-WRT和OPENWRT教程及使用花生壳
  3. 知识汇总:Python办公自动化应该学习哪些内容
  4. 台式计算机睡眠状态耗电多吗,台式机的休眠状态下还耗电吗?
  5. html中表格怎么合并单元格居中,word表格怎么合并单元格居中
  6. 设计模式七大设计原则
  7. android 设置音效EQ
  8. “交通·未来”第17期:深度出行感知,从出行需求预测到出行目的地预测
  9. CSS实现三角形、扇形、半圆以及圆形
  10. Python错误日志