给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串

 1 /*
 2  * 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,其实也就是变位词问题
 3  * 比如说  a=‘abc‘ b=‘acb‘是可以通过a变成b的
 4  * 思路;
 5  * 1.应进行分析,变位词区分大小写吗?比如God和dog是变位词?还需要考虑空格问题?
 6  * 在这里我们假定是区分大小写的。
 7  * 2.比较两个字符串时,如果它们的长度都不相等了,那肯定不是变位词
 8  *
 9  *
10  * */
11
12 public class IsSameString {
13
14     public static void main(String[] args) {
15         // TODO Auto-generated method stub
16         String s="abcd";
17         String t="dcba";
18         IsSameString iss=new IsSameString();
19         boolean flag=iss.permutation(s, t);
20         if(flag)
21             System.out.println("变位词");
22         else
23         System.out.println("不是变位词");
24
25     }
26     /*
27      * 如果两个是变位词的关系,那么它们都拥有相同的字符,只不过顺序不同,
28      * 对它们进行排序的话,会得到相同的字符串顺序
29      * 可以利用这一点进行判断
30      *
31      * */
32     public String sort(String s)
33     {
34         char[] content = s.toCharArray();
35         java.util.Arrays.sort(content);
36         return new String(content);
37     }
38     public boolean permutation(String s,String t)
39     {
40         if(s.length()!=t.length())
41             return false;
42         return sort(s).equals(sort(t));
43     }
44
45
46
47 }
时间: 2024-08-29 02:01:26

给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串的相关文章

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。

1 import java.util.*; 2 //import org.apache.commons.lang.StringUtils; 3 4 public class Same { 5 public boolean checkSam(String stringA, String stringB) { 6 boolean ifequal=false; 7 if(stringA.length()!= stringB.length()){ 8 return ifequal; 9 } 10 Str

NSString作业1:求字符串“158”和“39”按十进制数值做差后的结果,以字符串形式输出

代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str1=@"158",*str2=@"39"; int num1=[str1 intValue]; int num2=[str2 intValue]; int result=num1-num2; NSString *strResult=[

将参数字符串中的字符反向排列

//编写一个函数reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列. //要求:不能使用C函数库中的字符串操作函数. //第一种方法:递归法 #include <stdio.h> int reverse_string(char * string) {  if (*string != '\0')  {   string++;   reverse_string(string);   printf("%c", *(str

linux设备驱动第三篇:写一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存. 下面就开始学习如何写一个简单的字符设备驱动.首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作. 1.主设备号和次设备号 对于字符设备的访问是通过文件系统中的设备名称进行的.他们通常位于/dev目录下.如下: [plain] vie

linux设备驱动第三篇:如何写一个简单的字符设备驱动?

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存. 下面就开始学习如何写一个简单的字符设备驱动.首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作. 1.主设备号和次设备号 对于字符设备的访问是通过文件系统中的设备名称进行的.他们通常位于/dev目录下.如下: [email prot

linux设备驱动第三篇:如何实现一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存. 下面就开始学习如何写一个简单的字符设备驱动.首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作. 1.主设备号和次设备号 对于字符设备的访问是通过文件系统中的设备名称进行的.他们通常位于/dev目录下.如下: ? 1 2 3 4 5

给定两个字符串,获取两个字符串中最大相同的子串

1 package weekpratisce; 2 3 ///给定两个字符串,获取两个字符串中最大相同的子串 4 public class Demo9 { 5 public static void main(String[] args) { 6 String xx = "aaaaaaaaaaddddddd", yy = "45ddddda"; 7 String str = getMaxsubstring(xx, yy); 8 System.out.println(s

给定一个只包含字符’(’,’)’,’{’,’}’,’[‘和’]&#39;的字符串,判断输入字符串是否有效

public class Bracket { public static void main(String[] args) { String str = "[()]"; System.out.println(isValid(str)); } // [()] public static boolean isValid(String str) { Stack<Character> stack = new Stack<>(); Map<Character, Ch

判断一个字符串里是否含有某段字符?怎么截取一段字符?

写前端过程中遇到的最多的字符串操作莫过于 :判断一个字符串里是否含有某段字符 ,和 截取一段字符串. 字符串操作有很多方法,其实一般只要掌握以上两个就够用了,其他方法随他去吧,好,下面就以上两个方法讲解一下. 1.判断一个字符串是否含有某段字符,使用indexOf()方法: str.indexOf("参数1","参数2");参数1表示判断是否包含的小字符串, 参数2表示从左到有依次判断的起始位置,默认从0开始,str表示用于寻找的原字符串,ps:如果原字符串含多个判