【Java】编写程序,确定一个字符串s的字符重新排列后能否变成另一个字符串t

原创 2015年07月07日 13:26:03

【Java】编写程序,确定一个字符串s的字符重新排列后能否变成另一个字符串t

在编写之前,应先核实字符集的大小,是否区分大小写,空白字符是否需要考虑

首先考虑两个字符串长度是否相等,如果不相等那么肯定不能通过重新排列变成另一个字符串

其次,如果两个字符串经过重新排序能变成对方,说明

1. 每个字符的个数是相同的

2. 排序后的两个字符串应该是相同的

import java.util.Arrays;
import java.lang.*;

public class Permutation {
	public method_1	
	{
		public String sort(String s)
		{
			char[] content = s.toCharArray();
			java.util.Arrays.sort(content);
		}
		
		public boolean isPermu1(String s, String t)
		{
			if(s.length() != t.length())
				{ return false; }
			return sort(s).equals(sort(t));
		}
	}
	
	
	
	public boolean isPermu2(String s, String t)
	{
		if(s.length() != t.length())
		{ return false; }
		
		int[] letters = new int[256]; //let's say it's ACSII
		for (int c : letters)
		{
			letters[c] = 0;
		}
		char[] s_array = s.toCharArray();
		for(char ch : s_array)
		{
			letters[ch]++;
		}
		
		for(int i = 0; i < t.length(); i++)
		{
			int c = (int)t.charAt(i);
			if(--letters[c] <= 0)
			{return false;}
		}
		return true;
	}
}


CI1.3 给定两个字符串,确定一个字符串重新排列后,能否变成另一个字符串

问题分析 首先确认变位词是否区分大小写【此次区分大小写】 确认是否要考虑空白字符 优化: 比较两个字符串时,只要长度不同,就不可能是变位词。解法一:排序字符串对两个变位词的字符的字符进行排序,然后比较...
  • LIZHONGPING00
  • LIZHONGPING00
  • 2017年03月14日 15:08
  • 316

【笔试】58、确定其中一个字符串的字符重新排列后,能否变成另外一个字符串

/**************************************************************************************** *题目:给定两个字...
  • cutter_point
  • cutter_point
  • 2015年10月18日 19:43
  • 547

面试3之确定其中一个字符串的字符重新排列后,能否变成另一个字符串

题目描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个stri...
  • hj605635529
  • hj605635529
  • 2017年04月14日 13:50
  • 157

把一个字符串通过相邻字符移位变成另一个字符串 [No. 54]

问题: 给你两个字符串,比如 ABCD 和 DBCA,通过交换相邻字符的位置,把第一个字符串,变成第二个字符串,打印所有的步骤。比如从ABCD到DBCA,步骤是: ABCD ---> BACD -...
  • beiyeqingteng
  • beiyeqingteng
  • 2012年02月29日 07:02
  • 2695

lintcode---字符同构

题目描述: 给定两个字符串 s 和 t ,确定它们是否是同构的。 两个字符串是同构的如果 s 中的字符可以被替换得到 t。 所有出现的字符必须用另一个字符代替,同时保留字符串的顺序。 没有两个字...
  • qq_34355232
  • qq_34355232
  • 2017年12月27日 18:02
  • 76

重复子串问题(四):求两个字符串的最长公共字串

方法一:利用容器:将两个字符串中较短的字符串进行分解,分解为不同长度的子串,并保存在set 容器中,这样既可取出相同子串,同时也可以将子串排序,方便查找。利用string类自带的find函数查找重复子...
  • u012260238
  • u012260238
  • 2015年08月09日 17:10
  • 356

判断一个字符串的字符重新排列后,能否变成另一个字符串。

问题描述:如题,废话不多说,上菜。 /** * 这里规定大小写为不同字符,且考虑字符串重点空格。 * 保证两串的长度都小于等于5000。 * 思路:所有字符总数为2...
  • lan_xuewei
  • lan_xuewei
  • 2017年09月26日 23:22
  • 62

字符串指定位置插入

两个字符串s,t;把t字符串插入到s字符串中位置i处,s字符串中有足够的空间存放t字符串void insert(char *s,char *t,int i) { memcpy(&s[strle...
  • u012260238
  • u012260238
  • 2015年11月12日 20:12
  • 464

05:输出亲朋字符串

05:输出亲朋字符串 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,求给定字符串s的亲朋字符串s1。  亲朋字符串s1定义如下:给定字...
  • ljf_study
  • ljf_study
  • 2017年07月25日 11:11
  • 292

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

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri...
  • z_opt
  • z_opt
  • 2017年05月29日 10:53
  • 204
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java】编写程序,确定一个字符串s的字符重新排列后能否变成另一个字符串t
举报原因:
原因补充:

(最多只允许输入30个字)