算法题:字符串s1,s2,判断s1的任意排列是否是s2的子串,返回true或false
2021/4/9 1:25:09
本文主要是介绍算法题:字符串s1,s2,判断s1的任意排列是否是s2的子串,返回true或false,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 package com.Liuyt; 2 import java.io.FileInputStream; 3 import java.io.FileNotFoundException; 4 import java.util.ArrayList; 5 import java.util.List; 6 import java.util.Scanner; 7 8 public class Main { 9 public static List<String> list = new ArrayList<String>(); 10 public static void permu(char[] str) { 11 if (str == null) { 12 return; 13 } 14 permu(str, 0); 15 } 16 17 private static void permu(char[] str, int begin) { 18 if (begin == str.length) { 19 list.add(String.valueOf(str)); 20 } else { 21 for (int i = begin; i < str.length; i++) { 22 // 首次for循环时候i=begin,即a,b,c分别和自身交换 23 char temp = str[begin]; 24 str[begin] = str[i]; 25 str[i] = temp; 26 27 permu(str, begin + 1); 28 // 采用递归调用,每次begin+1后 带入新的递归 29 /* 交换一遍后再交换一次,能够保证最后的到的还是原数组,好办法! */ 30 temp = str[begin]; 31 str[begin] = str[i]; 32 str[i] = temp; 33 } 34 } 35 } 36 37 public static void main(String[] args) throws FileNotFoundException { 38 Scanner sc = new Scanner(System.in); 39 40 String input = sc.nextLine(); 41 String s1 = input.split(" ")[0]; 42 String s2 = input.split(" ")[1]; 43 44 if (s2.length() < s1.length() || s2 == null){ 45 System.out.println("false"); 46 return; 47 }else if(s1 == null && s2 == null){ 48 System.out.println("true"); 49 } 50 char[] s1_char = s1.toCharArray(); 51 permu(s1_char); 52 53 for (int i = 0 ;i < list.size();i++){ 54 System.out.println(list.get(i)); 55 if (s2.contains(list.get(i))){ 56 System.out.println("true"); 57 return; 58 } 59 } 60 System.out.println("false"); 61 } 62 }
示例1:
ab dshfsjbaooo
true
示例2:
ab dsjklacbsoo
false
这篇关于算法题:字符串s1,s2,判断s1的任意排列是否是s2的子串,返回true或false的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南
- 2024-11-21Flutter升级教程:新手必读的升级指南
- 2024-11-21Flutter升级教程:轻松掌握Flutter版本更新