Remove Specified Characters
来源:互联网 发布:linux识别不到hba卡 编辑:程序博客网 时间:2024/05/02 10:55
Remove Specified Characters
Write an efficient function in JAVA that deletes characters from a string. Use the prototype string removeChars( string str, string remove ); where any character existing inremove must be deleted from str. For example, given astr of “Battle of the Vowels: Hawaii vs. Grozny” and a remove of “aeiou”, the function should transform str to “Bttl f th Vwls: Hw vs. Grzny”. Justify any design decisions you make and discuss the efficiency of your solution.
Solution
1. keep a flag array to store the elements in the string removeChars. The search tome complexity could be O(n). Iterate through each element of the string removeChars and change the flag to true.
2.Iterate through str using two pointers p1 and p2, copy each element in the flag array whose value is false. p2 points the element that is needed to read, p1 points to the position that is needed to write in an element. In other words, p2 is used to iterate the whole string while p1 is used to track the length of the new string.
class Solution { public static String removeSpecifiedCharacters(String str, String remove) { if (str == null || str.length() == 0) return null; if (remove == null || remove.length() == 0) return str; char[] r = remove.toCharArray(); boolean[] flag = new boolean[128]; for (int i = 0; i < r.length; i++) { flag[r[i]] = true; } int p1 = 0; int p2 = 0; char[] s = str.toCharArray(); while(p2 < s.length) { if (flag[s[p2]] == false) { s[p1++] = s[p2]; p2++; } else { p2++; } } return new String(s, 0, p1); } public static void main(String[] args) { String str = "abcabcfffui"; String remove = "aeiou"; System.out.print(removeSpecifiedCharacters(str, remove)); }}
- Remove Specified Characters
- Remove Redundant Characters
- Remove accent characters
- How to remove all characters between two brackets?
- How to remove space or newline characters from a string?
- remove the duplicate(重复) characters from a string
- 【3】Remove the duplicate characters in a string
- Remove ^M characters at end of lines in vi
- [CrackCode] 1.3 Remove the duplicate characters in a string
- Remove M Characters “Control M” or “^M” or “CTRL M” Characters in a UNIX file
- characters
- This example uses the Delete method to remove a specified record from a Recordset.
- 绑定数据报错 The specified child already has a parent. You must call remove
- How do you remove the duplicate characters in a given string without using any additional buffer.
- C# Tips: How to remove white-space characters inside a string?
- remove
- remove
- remove
- 184Sum
- 快速排序
- 简单的几个OC知识点
- Chromium多线程模型设计和实现分析
- 报时助手
- Remove Specified Characters
- 工厂设计模式
- monkeyrunner截图限时免费阅读#1
- [NOI2014]魔法森林(动态加边+SPFA)
- 排序
- 解决Get和Post请求中中文乱码问题 (2013-01-26 23:59:39)转载▼ 标签: javaee it分类: JavaEE 对于Post请求,只需在Servlet或者jsp中写入如下
- android studio的安装和配置全过程
- 深入理解Android异步线程
- Linux下Git和GitHub使用方法总结