国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在字符串中刪除特定字符

2019-11-14 14:54:28
字體:
來源:轉載
供稿:網友

63.在字符串中刪除特定的字符。
題目:輸入兩個字符串,從第一字符串中刪除第二個字符串中所有的字符。例如,輸入”They are students.”和”aeiou”, 則刪除之后的第一個字符串變成”Thy r stdnts.”。

 

思路:

1. 位圖法

將兩個字符串分別轉換成bitmap 然后對他們做異或xor運算,得到的結果即為排除了第二個字符串的所有字符, 然后對該結果依次與原字符串的所有字符進行與運算,結果不為零的即為所得    恩 位圖真是個好東西啊。。。時間復雜度o(n+m) 花在了遍歷字符串并構造位圖上

2. 遍歷字符串,構造hashTable,然后匹配要刪除的字符

位圖法:

 1 package com.rui.microsoft; 2  3 public class Test63_DelCharsFromString { 4  5     public static void main(String[] args) { 6         Test63_DelCharsFromString app = new Test63_DelCharsFromString(); 7         String target = "They are students"; 8         String source = "Taeiou"; 9         app.del(target,source);10     }11     12     void del(String target, String source){13         int bitT = 0;14         int bitS = 0;15         16         for(char c: target.toCharArray()){17             bitT |= 1 << c;18         }19         20         for(char c: source.toCharArray()){21             bitS |= 1 << c;22         }23         24         System.out.PRintln(Integer.toBinaryString(bitT));25         System.out.println(Integer.toBinaryString(bitS));26         27         int inter = bitT ^ bitS;28         System.out.println(Integer.toBinaryString(inter));29         30         for(char c : target.toCharArray()){31             if((inter & (1<<c)) != 0){32                 System.out.print(" " + c);33             }34         }35     }36 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临城县| 清苑县| 安吉县| 策勒县| 乳源| 喀喇沁旗| 岑溪市| 开平市| 曲阳县| 南汇区| 封开县| 勃利县| 原平市| 抚宁县| 德安县| 运城市| 哈尔滨市| 枣阳市| 东山县| 尚义县| 双流县| 华蓥市| 新昌县| 外汇| 丰城市| 庄浪县| 措美县| 洛扎县| 隆尧县| 泗阳县| 尉氏县| 略阳县| 高台县| 常熟市| 固安县| 平谷区| 巢湖市| 七台河市| 永善县| 江源县| 吉木萨尔县|