字符串之变形数
字符串之變形數(shù)
題目:給定2個(gè)字符串str1和str2,如果str1和str2出現(xiàn)的字符種類和每個(gè)字符出現(xiàn)的個(gè)數(shù)也一樣,那么str1與str2互為變形數(shù)。請(qǐng)用函數(shù)實(shí)現(xiàn)。
例子:str1="123", str2="231" 返回 true
例子:str1="123", str2="2311" 返回 false;
解題思路
方法1:如果字符串str1和str2長(zhǎng)度不一樣肯定不是變形數(shù),如果相等的話,假設(shè)出現(xiàn)的的字符編碼為0~256,申請(qǐng)一個(gè)長(zhǎng)度為256的整形數(shù)組map,map[a]=b,表示字符a出現(xiàn)了b次,然后遍歷str1,比如遍歷到‘a(chǎn)’,那么是a[97]++,,然后遍歷str2,當(dāng)遍歷到‘a(chǎn)’,那么map[97]--,如果其中只要有一種情況小于0,那么肯定不是變形數(shù)字了,如果想不通,慢慢想,總會(huì)想得通的,加油。
方法2:既然str1和str2可以轉(zhuǎn)換成字符編碼0~256,而且每個(gè)可以把每個(gè)字符的編碼加起來,如果2個(gè)字符編碼都相等的話,那么是變形數(shù),前提是字符串的長(zhǎng)度是一樣的的,以防1+2+3=2+4;的情況出現(xiàn)。
下面是實(shí)現(xiàn)的java代碼
public class Changeword {public static void main(String[] args) {String str1="abcd",str2="abcdd",str3&#
總結(jié)
- 上一篇: 快速学习使用springmvc、stru
- 下一篇: 不变模式