日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

字符串变形词

發(fā)布時(shí)間:2025/4/16 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符串变形词 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

變形詞:

給定兩個(gè)字符串str1和str2,如果str1和str2中出現(xiàn)的字符種類一樣且每種字符出現(xiàn)的次數(shù)也一樣,那么str1和str2互為變形詞。

HashMap 解法:

HashMap的主要方法

int size() :得到Map中“鍵-值對(duì)”的數(shù)量

boolean isEmpty() :Map是否是空的,也就是是否不含有任何“鍵-值對(duì)”

boolean containsKey(Object key) :Map中是否含有以key為鍵的“鍵-值對(duì)”

boolean containsValue(Object value) :Map中是否含有以 value 為值的“鍵-值對(duì)”

Object get(Object key) :從Map中得到以key為鍵的值,如果Map中不含有以key為鍵的“鍵-值對(duì)”則返回null

Object put(Object key, Object value) :向Map中存儲(chǔ)以key為鍵、value為值的“鍵-值對(duì)”

Object remove(Object key) :從Map中移除以key為鍵的“鍵-值對(duì)”

void putAll(Map t) :將另一個(gè)Map中的所有“鍵-值對(duì)”導(dǎo)入到此Map中

void clear() :清除所有“鍵-值對(duì)”

Set keySet() :得到所有的鍵

Collection values() :得到所有的值

Set entrySet() :得到所有的“鍵-值對(duì)”,Set中的類型是Map.Entry
原始類型 封裝類

boolean Boolean

char Character

byte Byte

short Short

int Integer

long Long

float Float

double Double
初始化HashMap<Character,Integer> s=new HashMap<Character,Integer>();

import java.util.HashMap;public class Trr {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(isdeformation("1123","1213"));}public static boolean isdeformation(String s1,String s2) {HashMap<Character,Integer> s=new HashMap<Character,Integer>();char []chas1=s1.toCharArray();char []chas2=s2.toCharArray();for(int i=0;i<s1.length();i++) {if(!s.containsKey(chas1[i]))s.put(chas1[i], 1);else {int m=(Integer)s.get(chas1[i]);s.put(chas1[i], m+1);}}for(int j=0;j<s2.length();j++) {if(!s.containsKey(chas2[j])) {return false;}else {int m=(Integer)s.get(chas2[j]);if(m-1<0) return false;s.put(chas2[j], m-1);}}return true;} }

數(shù)組解法
此題的兩個(gè)字符串種類和次數(shù)都一樣,只有順序不一樣,那么可以使用一個(gè)數(shù)組記錄第一個(gè)字符串每個(gè)字母的出現(xiàn)頻率次數(shù),這樣在第二個(gè)字符串中遍歷每個(gè)字符,從數(shù)組中挨個(gè)減去,如果數(shù)組最后為空了,說明兩個(gè)字符互為變形詞。

對(duì)于數(shù)組的選擇,可以利用字符的ASCII碼值,字符可以直接和整型進(jìn)行算術(shù)運(yùn)算,字符串則不可以 ,例如:

‘a(chǎn)’+0 = 97;“a”+0 = a0;字符的編碼值出現(xiàn)在0~255之間,我們開辟一個(gè)266空間的整型數(shù)組map,每個(gè)字符的ASCII值對(duì)應(yīng)數(shù)組的下標(biāo),例如a是97,b是98,map[97] = 3,說明a出現(xiàn)了3次。

public class Deformation {public static void main(String[] args){String a = "123444";String b = "344421";System.out.println(isDeformation(a,b)); }public static boolean isDeformation(String a, String b){char[] chas1 = a.toCharArray();char[] chas2 = b.toCharArray();int[] map = new int[256];if(chas1.length!=chas2.length){return false;}for(int i=0;i<chas1.length;i++){map[chas1[i]]++;}for(int i=0;i<chas2.length;i++){if(map[chas2[i]]--==0){return false;}}return true;}

算法時(shí)間復(fù)雜度:o(n)

算法空間復(fù)雜度:字符種類個(gè)數(shù)

int a='你'; System.out.println(a); 20320 為了防止這種使用HashMap.

進(jìn)制

二進(jìn)制:采用0和1兩個(gè)數(shù)碼來表示的數(shù)。進(jìn)位規(guī)則是“逢二進(jìn)一”

八進(jìn)制:采用0-7八個(gè)數(shù)字計(jì)數(shù),進(jìn)位規(guī)則是“逢八進(jìn)一”

十進(jìn)制:采用0-9十個(gè)數(shù)字計(jì)數(shù),進(jìn)位規(guī)則是“逢十進(jìn)一”

十六進(jìn)制:采用0-9,A-F(10-15),進(jìn)位規(guī)則是“逢十六進(jìn)一”

/*** 進(jìn)制轉(zhuǎn)換*/public class jinzhiTest {public static void main(String[] args) {int i = 22;//二進(jìn)制 10110 = 1*2^4+0*2^3+1*2^2+1*2^1+0*2^0=22 System.out.println(Integer.toBinaryString(i)); //10110 //八進(jìn)制 26 = 2*8^1+6*8^0 = 22System.out.println(Integer.toOctalString(i)); //26//十六進(jìn)制 16 = 1*16^1+6*16^0 = 22System.out.println(Integer.toHexString(i)); //16}}

字符:是各種文字和符號(hào)的總稱,包括各個(gè)國家的文字、標(biāo)點(diǎn)符號(hào)、圖形符號(hào)、數(shù)字等。

字符集:字符集是多個(gè)符號(hào)的集合,每個(gè)字符集包含的字符個(gè)數(shù)不同。

字符編碼:字符集只是規(guī)定了有哪些字符,而最終決定采用哪些字符,每一個(gè)字符用多少個(gè)字節(jié)表示等問題,則是由編碼來決定的。計(jì)算機(jī)要準(zhǔn)確的處理各個(gè)字符集文字,需要進(jìn)行字符編碼,以便計(jì)算機(jī)能夠識(shí)別和存儲(chǔ)各種文字。(通過字符編碼可以把字符轉(zhuǎn)化成字節(jié))

二、常見的字符集編碼介紹

1、ASCII字符集

1.1、定義

ASCII 字符集:美國信息互換標(biāo)準(zhǔn)代碼。是基于羅馬字母表的一套電腦編碼系統(tǒng),主要顯示英語和一些西歐語言,是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng)。ASCII字符集只有256個(gè)字符,用0-255之間的數(shù)字來表示。(使用7位單元的字符集01111111–>256)

1.2、包含內(nèi)容

控制字符(回車鍵、退格、換行鍵等)

可顯示字符(英文大小寫、阿拉伯?dāng)?shù)字、西文符號(hào))

擴(kuò)展字符集(表格符號(hào)、計(jì)算符號(hào)、希臘字符、拉丁符號(hào))

1.3、編碼方式

第0-31號(hào)及127號(hào)是控制字符或通訊專用字符

第32-126號(hào)是字符,其中48-57號(hào)是0-9是個(gè)阿拉伯?dāng)?shù)字,65-90號(hào)為26個(gè)大寫英文字母,97-122號(hào)為26個(gè)英文小寫字母,其余一些為標(biāo)點(diǎn)符號(hào),運(yùn)算符號(hào)等。
其他編碼參見 : https://blog.csdn.net/xiaoxianer321/article/details/61617622

總結(jié)

以上是生活随笔為你收集整理的字符串变形词的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。