由买买提看人间百态

topics

全部话题 - 话题: charater
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
J*****a
发帖数: 4262
1
来自主题: JobHunting版 - linkedin,rocketfuel, google面经若干
楼主第一题的思路是对的,即“左向右扫描,若左边一位比右边一位大,则删除左边,
以此循环,如果最后还有删除名额,则删最后几位”。只是复杂度不是最优而已
你上来就说人家“不对”,欠考虑吧,况且你一开始给出的解复杂度不比楼主的低
这题根本不用deque,用个stack即可
而且0为什么不能放第一位?1023,k=1删除第一位即可,得到23,为最小,用以下方法
根本无需特殊处理
public int getSmallest(String input, int k){
if(input == null || k > input.length()) return null;
Stack s = new Stack();
for(int i = 0; i < input.length(); i++){
while(!s.isEmpty() && s.peek() > input.charAt(i) && k-- > 0) s.pop();
s.push(input.charAt(i));
}
... 阅读全帖
s********x
发帖数: 914
2
来自主题: JobHunting版 - 问一下OJ的Anagrams那道题
Time Limit Exceeded了
但感觉已经cache了intermediate result了
是不是这题assume只是26个小写英文字母呢,如果是的话,用array就更快?
贴一下code
class AnagramString {
boolean visited;
String str;
private Map map = null;

AnagramString(String s) {
this.str = s;
}

boolean isAnagram(String s) {
if (this.map == null) {
this.map = new HashMap(this.str.length());
for (int i = 0; i < this.str.length(); i++) {
char c =... 阅读全帖
m*********1
发帖数: 204
3
昨天晚上睡不着,上来发的,没想到一天有那么多回复了。看了大家的回复,我觉得我
这个题目不简单啊。呵呵。。。
不过这个题目我后来仔细思考过,我的做法是这样的:
1.两头同时开始扫,找到base case: 当substring(0,i) == substring(j,n)的时候,
我假设substring(0,i)为这个重复的base case. 这里n是原String的length
这里可以优化的是,如前面同学所说,i不能被length整除的话,就不用比较,直接跳
过去
2.从1找到base case以后,两头切掉,留下中间部分substring(i,j),先看一下长度,
能不能整除i,不能就直接false,可以的话,写个循环,每次切i长度下来,和base
case对比一下是不是相等,直到结束。
因为很多不能整除的数可以跳过去,这个做法的worse case 是长度正好是2^n的String
,并且base case正好是2^k的长度的情况。
比如 ababababababacab 这样找到base case = ab,然后要切到最后才发现ac,但是
感觉还是能满足O(n)
我贴... 阅读全帖
m*********1
发帖数: 204
4
昨天晚上睡不着,上来发的,没想到一天有那么多回复了。看了大家的回复,我觉得我
这个题目不简单啊。呵呵。。。
不过这个题目我后来仔细思考过,我的做法是这样的:
1.两头同时开始扫,找到base case: 当substring(0,i) == substring(j,n)的时候,
我假设substring(0,i)为这个重复的base case. 这里n是原String的length
这里可以优化的是,如前面同学所说,i不能被length整除的话,就不用比较,直接跳
过去
2.从1找到base case以后,两头切掉,留下中间部分substring(i,j),先看一下长度,
能不能整除i,不能就直接false,可以的话,写个循环,每次切i长度下来,和base
case对比一下是不是相等,直到结束。
因为很多不能整除的数可以跳过去,这个做法的worse case 是长度正好是2^n的String
,并且base case正好是2^k的长度的情况。
比如 ababababababacab 这样找到base case = ab,然后要切到最后才发现ac,但是
感觉还是能满足O(n)
我贴... 阅读全帖
y*****h
发帖数: 22
5
public boolean isMultipleDuplicate(String s) {
int patternPos = 0, patternEnd = 0;
for(int i=1; i if(s.charAt(i) != s.charAt(patternPos)) {
patternPos = 0;
patternEnd = i;
} else {
if(++patternPos > patternEnd && i != s.length()-1) {
patternPos = 0;
}
}
}
return patternPos>patternEnd && patternEnd>0;
}
Result:
abcabcabc: true
bcdbcdbcde: false
abcdabcd: true
xyzxy: false
aaa... 阅读全帖
a*****2
发帖数: 96
6
// KMP preprocessing
public static boolean isMultiple(String s){
int[] arr = new int[s.length()];
Arrays.fill(arr,0);
for(int i = 1; i < s.length(); i++)
if(s.charAt(i) == s.charAt(arr[i-1]))
arr[i] = arr[i-1]+1;

String patten = "";

// "aaaaa"
if(arr[s.length()-1] == s.length() - 1){
int steps = 3;
int n = s.length();
... 阅读全帖
S*******C
发帖数: 822
7
我的最优解,目前最精简解法,未发现任何问题
public class Solution {
//two pointers patternPos & patternEnd
public boolean isMultipleDuplicate(String s) {
int patternPos = 0, patternEnd = 1;
for (int i = 1; i < s.length() && patternEnd <= s.length() / 2; i++)
{
if (s.length() % (patternEnd + 1) != 0)
patternEnd++;// 过滤掉长度不符合的情况
//if s[i] != s[patternPos], reset the pattern
else if (s.charAt(i) != s.charAt(patternPos)) {
pattern... 阅读全帖
S*******C
发帖数: 822
8
不好意思,刚想出来一个超级精简的解法
public class Solution {
//two pointers patternPos & patternEnd
public boolean isMultipleDuplicate(String s) {
int patternPos = 0, patternEnd = 1;
for (int i = 1; i < s.length() && patternEnd <= s.length() / 2; i++){
// 过滤掉长度不符合以及不匹配的情况
if (s.length() % (patternEnd + 1) != 0 || s.charAt(i) != s.
charAt(patternPos)){
patternPos = 0;
patternEnd = i;
//else if s[i] == s[patternPos], we incr... 阅读全帖
f*******b
发帖数: 520
9
关键在于简单易懂:
public static boolean isMultiple(String s) {
if (s == null || s.length() < 4) return false;
String p = s.substring(0, 1);
int times = 1;
for (int i = 1; i < s.length();) {
int j = 0;
while (i < s.length() && j < p.length()) {
if (s.charAt(i) == p.charAt(j)) {
j++;
i++;
} else {
p = s.substring(0, i+1);
i++;
break;
}
}
if (j == p.length()) {
times++;
} else {... 阅读全帖
S*******C
发帖数: 822
10
我的双指针解法就是O(N), 因为每一步i都会递增,递增n/2次
public boolean isMultipleDuplicate(String s) {
int patternPos = 0, patternEnd = 1;
for (int i = 1; i < s.length() && patternEnd <= s.length() / 2; i++){
// 过滤掉长度不符合以及不匹配的情况
if (s.length() % (patternEnd + 1) != 0 || s.charAt(i) != s.
charAt(patternPos)){
patternPos = 0;
patternEnd = i;
//else if s[i] == s[patternPos], we increment the patternPos so
that we can compare
/... 阅读全帖
f*******r
发帖数: 976
11
对的,你的也是O(n)

我的双指针解法就是O(N), 因为每一步i都会递增,递增n/2次
public boolean isMultipleDuplicate(String s) {
int patternPos = 0, patternEnd = 1;
for (int i = 1; i < s.length() && patternEnd <= s.length() / 2; i++){
// 过滤掉长度不符合以及不匹配的情况
if (s.length() % (patternEnd + 1) != 0 ||
s.charAt(i) != s.charAt(patternPos)) {
patternPos = 0;
patternEnd = i;
//else if s[i] == s[patternPos], we increment the patternPos... 阅读全帖
h******6
发帖数: 2697
12
来自主题: JobHunting版 - Reverse Words in a String
上个不用api的
public String reverseWords(String s) {
if (s == null || s.length() == 0) {
return s;
}
int len = s.length();
Stack stack = new Stack();
int start = 0;
int i = 0;
while (i < len) {
if (s.charAt(i) == ' ') {
if (start != i) {
stack.push(s.substring(start, i));
}
while (i < len && s.charAt(i) == ' ') {
i+... 阅读全帖
h******6
发帖数: 2697
13
来自主题: JobHunting版 - Reverse Words in a String
上个不用api的
public String reverseWords(String s) {
if (s == null || s.length() == 0) {
return s;
}
int len = s.length();
Stack stack = new Stack();
int start = 0;
int i = 0;
while (i < len) {
if (s.charAt(i) == ' ') {
if (start != i) {
stack.push(s.substring(start, i));
}
while (i < len && s.charAt(i) == ' ') {
i+... 阅读全帖
J*****a
发帖数: 4262
14
写个java的
public String twoDistinct(String input){
if(input == null) return null;
String rl = "";
int[] count = new int[256];
for(int s = 0, distinct = 0, i = 0; i < input.length(); i++){
if(count[input.charAt(i)]++ == 0) distinct++;
if(distinct == 2 && rl.length() < i - s + 1)
rl = input.substring(s, i+1);
if(distinct > 2){
while(--count[input.charAt(s++)] != 0);
distinct--;
}
}
return rl;
}
c********l
发帖数: 8138
15
来自主题: JobHunting版 - Leetcode的系统真是弱爆了
//MITBBS' article system will mess up the source code
// You may probably need to re-arrange the line breaks
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Solution {

public static void main(String[] args) {
Solution sol = new Solution();
String[] dictStrArr = new String[] {
"dose","ends","dine","jars","prow","soap","guns","hops","
cray","hove","ella","hour","lens","j... 阅读全帖
c********l
发帖数: 8138
16
简洁不是最终极的目标,有时候需要reduce runtime complexity
见我之前写的
http://www.mitbbs.com/article/JobHunting/32658475_3.html
//MITBBS' article system will mess up the source code
// You may probably need to re-arrange the line breaks
// by coupondeal@mitbbs
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Solution {

public static void main(String[] args) {
Solution sol = new Solution();
String[] dictStrA... 阅读全帖
t*****y
发帖数: 25
17
来自主题: JobHunting版 - 请教一道G题的代码量
我想的是用一个hash,存放每一对字母的相对顺序。
假设输入涵盖了所有的26*25/2的排列可能,最后的hash是会是这样,
z => []
y => [yz]
x => [xy, xz]
w => [wx, wy, wz]
....
再按每个字母对应的集合所含元素排序就好。
Map> inequalities = new HashMap HashSet>();
for (int i = 0; i < words.get(0).length(); i++) {
int index = 0;
String thisword = words.get(index);
while (index < words.size() - 1){
String nextword = words.get(index + 1);
char c1 = thisword.c... 阅读全帖
S***8
发帖数: 13
18
来自主题: JobHunting版 - FB 面筋
第一题,我把我当时面试的代码贴上来,可能还有问题,但面试官说可以了
class File {
static String buffer = "";
String readLine() {
if(!buffer.equals("")) { // we have characters left last time
StringBuilder sb = new StringBuilder();
int i = 0;
while(buffer.charAt(i) != '\n' && i < buffer.length()) { //
read one line
sb.append(buffer.charAt(i));
i++;
}
buffer = buffer.substring(i + 1);
if(i == buffer.length()) { // we have so... 阅读全帖
g********n
发帖数: 447
19
来自主题: JobHunting版 - leetcode里的Palindrome partition问题
网上找了一个solution是用dp的,可是这里怎么也想不明白,能指点一下吗?谢谢
partition.remove(partition.size() - 1);
为什么每次递归调用后需要把最后一个删掉呢?
谢谢
public ArrayList> partition(String s) {
ArrayList> result = new ArrayList>();
if (s == null || s.length() == 0) {
return result;
}
ArrayList partition = new ArrayList();
addPalindrome(s, 0, partition, result);
return result;
}
private void addPalindrome(String s, int start, ArrayList阅读全帖
d******4
发帖数: 132
20
Longest Palindromic Substring这一题. 同样的O(n^2)算法,java能过,python不能
过。
python exceeds time limit 了.
The following is java version:
public String longestPalindrome(String s) {
if(s == null || s.length()==0)
return "";
int maxLen = 0;
String res = "";
for(int i=0;i<2*s.length()-1;i++)
{
int left = i/2;
int right = i/2;
if(i%2==1)
right++;
String str = lengthOfPalindrome(s,left,right);
if(maxLen ... 阅读全帖
m*****k
发帖数: 731
21
来自主题: JobHunting版 - Google onsite 题目求助
counter用不着吧,sliding window idea,
public static int getLongestSubStringWith2Chars(String s) {
if(s==null || s.isEmpty()){
return 0;
}
int c1Idx = 0;
int c2Idx = 0;
int c3Idx = 0;
int l = 0;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) != s.charAt(c2Idx)) {
c3Idx = i;
int temp = c3Idx - c1Idx;
if (temp > l) {
l = temp;
Sys... 阅读全帖
w**a
发帖数: 487
22
来自主题: JobHunting版 - 请教G家那题 abc123->a1b2c3
用StringBuilder算extra space么?
public static String googleABC(String test){
int len = test.length()/2;
StringBuilder res = new StringBuilder();
for(int i=0;i res.append(test.charAt(i)).append(test.charAt(i+len));
}

return res.toString();
}
m*****k
发帖数: 731
23
来自主题: JobHunting版 - 亚麻店面面经
public static List findWords(char[][] board, List words){
List result = new ArrayList<>();
int[][] deltas = {{0, 1}, {1, 0}};
for(String w: words){
if(w.charAt(0)==board[0][0]){
match(board, 0,0,1, w, deltas, result);
}
}
return result;
}


private static void match(char[][] board, int i, int j, int k, String w,
int[][] deltas, List result) {

if(k==w.leng... 阅读全帖
w**********o
发帖数: 140
24
String str = "aabbcc";
for(int i=0; i System.out.printf("%s", str.charAt(i));
}
System.out.println()
for(int i=0; i<=str.length()-1; ++i){
System.out.printf("%s", str.charAt(i));
}
有差別麼? 沒有.
請先理解做題思路.
z*****1
发帖数: 1
25
用的dfs 写起来也没有那么复杂
String getCurString(String pat, int patIndex)
{
char curChar = pat.charAt(patIndex);
boolean positive = pat.charAt(patIndex + 1) == '+';
StringBuilder sb = new StringBuilder();
if (positive)
{
sb.append(curChar);
sb.append(curChar);
}
else
{
sb.append(curChar);
sb.append(curChar);
sb.append(curChar);
sb.append(curChar);
}

return sb.toString();
}

public int dfs(String txt... 阅读全帖
b**********5
发帖数: 7881
26
boolean isPalinRecursiveHelper(String s, int[] left, int right) {
if (right >= s.length()) return true;
if (left[0] > right) return true;
boolean isPalin = isPalinRecursiveHelper(s, left, right+1);
if (isPalin==false) return false;
isPalin = (s.charAt(left) == s.charAt(right));
left[0] = left[0]+1;
return isPalin;
}
boolean isPalindrome(String s) {
String sTrimmed = s.trim();
int[] left = new int[1]; left[0] = 0;
return isPalinRecursiveHelper(s, left, 0);
... 阅读全帖
S*******C
发帖数: 822
27
虽然有很小的区别,但面试官不满意你也没办法
if (i <= j && Character.toLowerCase(s.charAt(i)) == Character.
toLowerCase(s.charAt(j)))
i++; j--;
else
return false;
这里可以2句并一句的
I*******m
发帖数: 10
28
这个是前几天有人问我,我的答案:
public boolean isPalandrome(String s)
{
if (s != null)
{
for (int i= 0; i < s.length()/2; i++)
{
if (s.charAt(i) != s.charAt(s.length() - i -1))
{
return false
}
}
}
return true;
}
j**7
发帖数: 143
29
来自主题: JobHunting版 - F面经的一题
public String window(String S, String P) {
HashMap> indexMap = new HashMap<
Character, LinkedList>();
for (int i = 0; i < S.length(); i++) {
char c = S.charAt(i);
LinkedList list = indexMap.get(c);
if (list == null) {
list = new LinkedList();
list.add(i);
indexMap.put(c, list);
} else {
list.add(i);
}... 阅读全帖
w**********h
发帖数: 31
30

Map里面存个list就行吧,把所有重复的index都存进去。不知道你说的遍历所有diff怎
么做,复杂度多少?
这是我的思路, time复杂度为O(L),L 为字符串长。
只考虑有difference的index,否则交换无意义。交换后最多可以使difference减少2,
最少是0.
1.遍历s1,构建一个Map>.key 是s1的字符,value是s1包
含该字符的所有index.
2.遍历s2,如果map.containsKey(s2.charAt(i)), 遍历map.get(s2.charAt(i)), 其中
每个index记为j. 尝试swap(i,j),看difference 减少多少(至少减少1). 如果发现减
少2的,返回。
y**********a
发帖数: 824
31
来自主题: JobHunting版 - Google 电面

public static String boardMove(String s, char c, int n) {
StringBuilder res = new StringBuilder();
for (int i = 0; i move(c, s.charAt(i), n, res);
c = s.charAt(i);
}
return res.toString();
}
static void move(char c1, char c2, int n, StringBuilder res) {
int a = c1-'a', b = c2-'a';
int x1 = a/n, x2 = b/n, y1 = a%n, y2 = b%n;
int dx = Math.abs(x1-x2), dy = Math.abs(y1-y2);
char v... 阅读全帖
j**j
发帖数: 4
32
来自主题: JobHunting版 - 讨论下lc最新的那道hard题吧
看了大家的思路,也整理一下java的解法,用static的函数弄的,没测试过速度。。。
public static ArrayList mathToTarget(String nums, long target) {
ArrayList result = new ArrayList<>();

long val1 = 0;
long val2 = 0;

for (int i = 1; i <= nums.length(); i++) {
val2 = Long.parseLong(nums.substring(0, i));
dfs(nums, i, val1, val2, target, nums.substring(0, i), result);
if (nums.charAt(0) == '0') break;
}

return result;
}
public static void dfs(String nums, int in... 阅读全帖
h**********I
发帖数: 51
33
来自主题: JobHunting版 - 求教一个string match 的 dp 解法
private String getToken(char c, char op) {
String s = c + "" + c;
if (op == '+')
return s;
return s + s;
}
private int findMatches(String s1, String s2, int begin, HashMap Integer> cache) {
if (s2.length() == 0)
return 1;
if (begin >= s1.length() - 1)
return 0;

String cacheKey = s2 + "_" + begin;
if (cache.containsKey(cacheKey))
return cache.get(cacheKey);

... 阅读全帖
B*******j
发帖数: 232
34
就用的bfs,可是就是通过不了测试,请帮忙看看我这个办法,怎么过不去呢? 先谢
过了
public class Solution {
/**
* @param start, a string
* @param end, a string
* @param dict, a set of string
* @return an integer
*/
public int ladderLength(String start, String end, Set dict) {
// write your code here

int len = dict.size();

if(len < 1){
return 0;
}

Queue q = new LinkedList();


i... 阅读全帖
b********6
发帖数: 35437
35
来自主题: JobHunting版 - 面试题
这也叫题吗
for循环从1到length-2
charAt(i-1)==charAt(i 1)
Return true;
s******7
发帖数: 1758
36
来自主题: JobHunting版 - 面试题
没问题呀, 走到zbz的b时候charAt(i - 1) == charAt(i + 1)就会return true;

发帖数: 1
37
public class Solution {
public List removeInvalidParentheses(String s) {
List res = new ArrayList<>();
Queue queue = new LinkedList<>();
Set checked = new HashSet<>();
boolean found = false;
int max = 0;
queue.add(s);
while (!queue.isEmpty()) {
String t = queue.remove();
if (isValid(t)) {
found = true;
if (t.length() >= max && !res.contains(t)) {
... 阅读全帖
L**********1
发帖数: 797
38
来自主题: JobMarket版 - 请教面试JAVA考题最佳算法
2.
String doubleStr (String ipt) {
String ret = "";
for(int i=0; i ret += String.valueOf(ipt.charAt(i)) + String.valueOf(ipt.charAt(i));
}
return ret;
}
r*******c
发帖数: 1060
39
一个MM的回复:
很荣幸的是今天刚好我也读到这里,与你同样也有关于character一词的疑问。我的心
得是:character不是与生俱来的,如果是与生俱来的应该是nature更合适一些。
characer指的是后天经过生活的历练而具有的(正面的)品格。有一个姊妹查到她的英
文bible里面的解释是charater=a proved faith and tried integrity. 所以翻为老练
也比较贴切但似乎没有把里面微妙的释义传达出来。如果你有进一步,欢迎你再贴给我
分享,谢谢!
赞这个:
charater=a proved faith and tried integrity
z*y
发帖数: 1311
40
来自主题: Java版 - java这个是什么逻辑?
class testString
{
public static void main(String args[])
{
String s = "1234567";
System.out.println(s.charAt(0));
System.out.println(s.charAt(1));
System.out.println(s.length());
System.out.println(s.substring(0, s.length()-1));
}
}
输出:
1
2
7
123456
string index 如果是从0开始的,那么最后应该输出整个串,right?
t*********e
发帖数: 630
41
来自主题: Java版 - 这个有 bug 吗
boolean contains(String str, String substr) {

int strSize = str.length();
int subSize = substr.length();

if(str==null || substr==null){
return false;
}

if(subSize > strSize ){
return false;
}

int i =0;
while(i int j = 0;
int l = i;
while(j if(Character.toLowerCase(str.charAt(i)) == Charact... 阅读全帖
t*********e
发帖数: 630
42
来自主题: Java版 - Find maximum palindrome
Is there a better way to do it? The findMaxPalindrome needs to be called
twice.
String maxPalindrome(String str) {
String maxPalindrome = "";
for(int i=0; i // when the palindrome is odd number, i.e. "aabaa"
maxPalindrome = findMaxPalindrome(str,i,i,maxPalindrome);

// when the palindrom is even number, i.e. "cccc"
maxPalindrome = findMaxPalindrome(str,i,i+1,maxPalindrome);

}
... 阅读全帖
n****i
发帖数: 1024
43
来自主题: Java版 - rock paper scissor 求教
主要是第一个comment那边,输入yes or no 然后取出第一个char赋值给tryAgain,我
用了tryAgain = scan.findInLine(".").charAt(0); 跑下来是出现一个框,根本就没
有赋值给tryAgain,求大神帮忙指点下,我哪里出错了。另外我用switch没问题吧
import java.util.Scanner;
import java.util.Random;
public class RockPaperScissors {

private static String[] choices = { "Rock", "Paper", "Scissors" };

public static void main (String[] args){

Scanner scan = new Scanner(System.in);
Random rGen = new Random();

String name;
int playerChoiceNum;
String playerC... 阅读全帖
g*****g
发帖数: 34805
44
我来贴标准答案了。把radix hardcode成10就行。
public static int More ...parseInt(String s, int radix)
440 throws NumberFormatException
441 {
442 if (s == null) {
443 throw new NumberFormatException("null");
444 }
445
446 if (radix < Character.MIN_RADIX) {
447 throw new NumberFormatException("radix " + radix +
448 " less than Character.MIN_
RADIX");
449 }
450
451 if (radix > Character.... 阅读全帖
H******7
发帖数: 1728
45
否则就无法运行
比如这个, 去掉reverseWords的static就不对
public class Main {
public static String reverseWords(String s) {
StringBuilder reversed = new StringBuilder();
int j = s.length();
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == ' ') {
j = i;
} else if (i == 0 || s.charAt(i - 1) == ' ') {
if (reversed.length() != 0) {
reversed.append(' ');
}
reversed.append... 阅读全帖
o****y
发帖数: 26355
46
来自主题: Military版 - 我遇到了一位老神医
I am just watering the holes la, rarely dig a hole by myself.
I love this board, it is very good place to watch all kinds of ppl behaviors
here. My life goal is to write a book when I retire, I love to create
several charaters from this board in my future book ah.
y*******g
发帖数: 90
47
来自主题: Military版 - 直接去ABC网站去投诉。
http://abc.go.com/contact-us
choose JK show in the pull down menu.
the limit is 500 charaters and this is what I post there.
I want to express my deep concern and frustration over the recent Jimmy
Kimmel's “Kids Table” show. It was aired on ABC recently and talked about
killing all the Chinese so that the states do not need to pay back their
debts to China. It is extremely distasteful and it is shameful to use some
innocent kids to make racially biased statement. I believe a sincere apology
shou... 阅读全帖
c*********n
发帖数: 1282
48
来自主题: Military版 - LC 387 怎么优化
希望大家都能拿到大包裹,我帖一个答案吧。其实就一层床糊纸。
import java.io.IOException;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import java.util.Set;
public class FirstUniqueCharacter {

public int firstUniqChar(String s)
{
Set set = new HashSet();
LinkedHashMap result = new LinkedHashMap Integer>();
for (int i=0; i char c = s.charAt(i);
if (set.contains(c)) {
resu... 阅读全帖
g**********y
发帖数: 14569
49
来自主题: JobHunting版 - 贴几道某大公司的面试题
递归,复杂度O(strlen).
private String find(String input, int k) {
int N = input.length();
if (N == 1) return input;
int i = k/P[N-1];
int j = k%P[N-1];
return input.charAt(i) + find(input.substring(0, i) + input.substring(i+1), j);
}
r****s
发帖数: 1025
50
public class StringPermutation {

public static void permutate(String aString, String resultString, int
curlevel)
{
if (curlevel==0)
{
System.out.println(resultString);
}
else
{

for (int i=0;i {
String bString="";
char curChar=aString.charAt(i);
String stringToPassIn=resultString+curChar;

bString+=aString.substr
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)