判断一个串包含的字符串是否在另外个串中出现。

来源:互联网 发布:免费工程造价软件 编辑:程序博客网 时间:2024/06/05 01:58

写一个函数判断第一个串包含的字符是否都在第二个串中出现,是则返回true,否则返回false;

输入:

a3sd

dasynjdk3

输出:

true


算法思想:先扫描长串,第二个串,以字符的ascii码作为数组下标记录;然后扫描第一个串,检查对应位置如果有不是1的,则返回false;第一个串检查结束正常返回则返回true;时间复杂度O(n),空间复杂度O(1)。


java实现代码如下:

package com.mytest.coding;import java.util.Scanner;public class Str1AllinStr2 {public static void main(String[] args) {// 第一个串包含的字符是否都在第二个串中出现,是则打印true,否则打印false;Scanner  scanner=new Scanner(System.in);while(scanner.hasNext()){String str1=scanner.nextLine();String str2=scanner.nextLine();System.out.println(findAllin(str1,str2));}}private static boolean findAllin(String str1, String str2) {byte[] arr=new byte[128];for (int i=0;i<str2.length();i++) {arr[str2.charAt(i)]=1;}for (int j=0;j<str1.length();j++) {if(arr[str1.charAt(j)]!=1) {System.out.println(str1.charAt(j));return false;}}return true;}}


0 0
原创粉丝点击