h**6 发帖数: 4160 | 1 第一题,遍历b串用256数组记录出现过的字符,出现过设为1,没出现过设为0。
然后遍历a串同时检测数组,为1的加入返回字符串中。
其他的等待高手解答。 |
|
D********g 发帖数: 650 | 2 给一个字符串s1,和一个小串s2,求算法能在s1中找到包含s2里所有字符的最小子串。
比如,
s1 = "ADOBECODEBANC"
s2 = "ABC"
最小子串是 "BANC"
要求O(N)的算法。 |
|
l**o 发帖数: 356 | 3 先找到第一个包含所有字符的子字符串,对于substring 中出现的第一个B中的字符,在
他之后找第一次出现的位置,substring 后移,找出最短的长度
不知道我说清楚了没有... |
|
h**6 发帖数: 4160 | 4 我的方法是先找到第一个包含所有字符的子字符串,用两个指针分别指向子串头尾,一
个数组统计各字符出现次数。此后首先考虑移动左指针。
1.左指针移动,每次右移更新子串最短长度。
1)若左指针指向字符不是B串中字符,左指针右移;
2)若左指针指向字符是B串中字符,且在子串中出现次数不止一次,左指针右移并减去
一次出现次数;
3)若左指针指向字符是B串中字符,且只在子串中出现一次,左指针不动,换右指针。
2.右指针移动。
1)若右指针指向字符不是B串中字符,右指针右移;
2)若右指针指向字符是B串中字符,且不是左指针指向的字符,右指针右移并增加一次
出现次数;
3)若右指针指向字符是B串中字符,且是左指针指向的字符,右指针右移并增加一次出
现次数,换左指针。 |
|
A*********r 发帖数: 564 | 5 链表头要min,是为了计算当前子串的长度?
看你的例子:
s1 = "ADOBECODEBANCBBCAA"
s2 = "ABC"
0,3,5,9,10,12,13,14,15,16,17
刚开始依次遍历到0,3,5, hashtable为
a b c
0 3 5
计算此时的字串长度为5, 保存当前最小字串
遍历到9,10,
hashtable 依次被更新为 0 9 5 --> 10, 9, 5, 最小index变为5, 所以计算此时的
字符串长度为5,不比之前的更小,不用更新最小字串
继续遍历到12, hashtable 变为 10, 9, 12, 更新长度为3
继续遍历到13, hashtable变为 10,13,12,长度一样,不更新
继续遍历到14,15,16,17, hashtable依次变为
10, 14, 12 -> 10, 15, 12 -> 16, 15, 12 -> 17, 15 , 12
长度都没有被更新。。
唯一的问题就是在hashtable中,计算当前字串长的问题,貌似直接算的话需要O(m).
如果在链表头保留了当前hashtable中最小ind |
|
m*****k 发帖数: 731 | 6 给一个字符串s1,和一个小串s2,求算法能在s1中找到包含s2里所有字符的最小子串。
比如,
s1 = "ADOBECODEBANC"
s2 = "ABC"
A: 0,10,
B: 3, 9,
C: 5,12
(0,3,5) length is 5-0
min 0, remove 0, take next one, say 10
(10,3,5) lenth is 10 -3
min 3, remove, take next, 9
(10,9,5) length is 10 - 5
min 5, remove, take next, 12
(10,9,12) lenth is 12 - 9
min 9, remove, no next, done.
shortest is 12 - 9, which is (10,9,12) |
|
m*****k 发帖数: 731 | 7 给一个字符串s1,和一个小串s2,求算法能在s1中找到包含s2里所有字符的最小子串。
比如,
s1 = "ADOBECODEBANC"
s2 = "ABC"
A: 0,10,
B: 3, 9,
C: 5,12
(0,3,5) length is 5-0
min 0, remove 0, take next one, say 10
(10,3,5) lenth is 10 -3
min 3, remove, take next, 9
(10,9,5) length is 10 - 5
min 5, remove, take next, 12
(10,9,12) lenth is 12 - 9
min 9, remove, no next, done.
shortest is 12 - 9, which is (10,9,12) |
|
s******n 发帖数: 21 | 8 两个字符串 "ABC" "XYZ", 请问如何生成 all possible interleaved combinations
include all character from both sets but still keep the order from their
original forms
sample output:
"AXBCYZ"
"ABXYCZ"
要求打印出所有可能 这题怎么做? 谢谢! |
|
r******e 发帖数: 80 | 9 谢谢, xiongyp
1. 如果没有空间存在set里面呢?
2. 另外,对于n长度的字符串, 其中有m个相同的字符, 其它的都是唯一的。 复杂度
是 n!. 有没有办法做到 n! / m! 呢? |
|
O******i 发帖数: 269 | 10 给一个字符串,like “hello world",然后输出 l:3 o:2 e:1 d:1 h:1 r:1 w:1。就
是每个出现的字符和其出现的频率,要求频率从高到低输出。
Hash表是无序的,怎么按从高到低输出? |
|
z****u 发帖数: 104 | 11 字符串的 permutation 肯定是比较基础的题了,可是自己写了一下发现要 bug free
真心很难啊。调试了半天才 ok,而且程序看起来很臃肿,这要是在白板上铁定写不出
来啊
求大家指点一下该向哪个方向改进?
#include
#include
#include
char* insert(char* dst, int n, char c, int j)
{
/* Insert char c into string dst at location j */
n++;
dst = (char*) realloc(dst, sizeof(char) * n);
while(j < n)
{
char tmp = dst[j];
dst[j] = c;
c = tmp;
j++;
}
return dst;
}
char** permutation_recursive(char* s, int n, in... 阅读全帖 |
|
z****u 发帖数: 104 | 12 没有考虑重复字母的问题,所以测试 aab 肯定通不过
主要考虑的是 permutation 出来的字符串的存储,所以用了很多 malloc 和 realloc
,不过现在想起来我其实完全可以在开始就用一个 malloc 搞定的。
写代码前没动脑子,出来就是这个效果了, /sigh,水平亟待提高啊 |
|
K*******i 发帖数: 399 | 13 要求bug free
字符串只包含大小写字母和空格,空格是分隔符
以下返回0
NULL
"" // 长度为0的空串
" "
以下返回5
"This is an apple"
" This is an apple"
"This is an apple "
" This is an apple "
"apple"
" apple "
" apple"
"apple " |
|
p*****2 发帖数: 21240 | 14
edit distance.
就是两个字符串a,b。
从a变到b需要最小的步骤
每步可以做三种操作
1. 增加一个字符
2. 删除一个字符
3. 修改一个字符 |
|
l*******s 发帖数: 1258 | 15 请google: edit distance
这个是DP的经典问题,思路挺NB的,非常具有扩展性。相关算法在NLP领域用的很多。
基本思路就是用两个字符串构建一个matrix,每个cell代表对应的两个字串的edit
distance。
自己定义insert、delete、alternate的cost,然后比较每个cell周围三个cell的值,
确定当前值,然后就ok了 |
|
c********t 发帖数: 5706 | 16 给字符串,里边是几个单词中间没空格,输出所有可能的句子。
这题谁见过?我怎么看不懂。求解释。 |
|
K*****k 发帖数: 430 | 17 输入是字符串的集合,返回包含数字字符最少的那个串,如果有多个串都是最少数字字符
,返回任意一个即可. |
|
l*******b 发帖数: 2586 | 18 这样的,加了绝对值。考虑对齐的字符串能不能延伸。因为延伸以后距离一定更大。所
以有三种情况
*******sddff********
kjhhg
sdj************
****kgc
*************ljgd
dssj************
如果要返回所有距离最大的,只要把这种里面两头相同的部分踢剃掉就好了。 |
|
C***y 发帖数: 2546 | 19 第一步整个字符串reverse
第二步按单词reverse |
|
|
|
|
e***s 发帖数: 799 | 23 二爷,是要把分割的单词返回到一个字符串中,方法定义是
String segmentString(String s, Set dict) |
|
O******i 发帖数: 269 | 24 这题在CAIWU的G面经也有?
和一个老美。先上来DP问题。说给一个字符串,是通过一些单词没有空格隔开的。让我
如果把他们分成最少的单词数。用了DP做出来。不过不知道他听懂没有。然后让设计一
个数据结构,使得一个人输入几个字母以后,会弹出来推荐的词。我用了prefix tree
。然后他问怎么能最小化打字。我就说可以根据概率来弹出后面3个的推荐,然后一次
继续。然后在这个上面纠缠了很多,然后考虑了很多情况。然后算了一下期望可以减少
的打字数。 |
|
w****x 发帖数: 2483 | 25
不会的,你一个查询字符串可以hash到不同的机器,一个机器维护一个big trie |
|
r**h 发帖数: 1288 | 26 突然想到了这个问题,求教一下各位
虽然trie专门用来处理字符串,但是我觉得对于hashset,如果hash函数设计得好,效
率也不会输呀。 |
|
r**h 发帖数: 1288 | 27 这题首先就应该把数字转换成字符串吧?
leetcode上的那道题没有重复的元素,要简单一些呀
(不过那题要写对感觉也不简单啊) |
|
a**********0 发帖数: 422 | 28 【 以下文字转载自 Java 讨论区 】
发信人: apprentice00 (数学学徒), 信区: Java
标 题: 如何确保每次读入的字符串都是unique的
发信站: BBS 未名空间站 (Mon Jul 29 10:39:48 2013, 美东)
每次读入一个string 但是程序需要每次读入的string原先没有读入过 也就是unique的
想到了hashset 但是我的程序没有如我所愿 即使有时候读入的东西以前读到过 也照
读不误 代码如下 请帮忙指点
String result = "";
boolean flag = true;
while(true) {
for (int i = 0; i < k; i++) {
... 阅读全帖 |
|
k***g 发帖数: 166 | 29 assumption: 数组足够放下压缩后的字符串
输入 abc 输出 a1b1c1
输入 aaa 输出 a3
唯一想到的办法是倒着来,然后memcpy到开头,是不是太土了... |
|
o***g 发帖数: 2784 | 30 刚才看Swift String,说想要知道字符串的字符个数需要用countElements()来数,这
个是从前到后一个一个数的,这个准
NSString的length可能会返回不同的结果 |
|
W***i 发帖数: 9134 | 31 时间复杂度,空间复杂度, 之后如何查找字符串
这个是recruiter给的面试例子。。。 |
|
p*********j 发帖数: 47 | 32 输入一个字符串,返回所有字串,即"abc" -> {"a", "b", "c", "ab", "bc", "abc"}
。觉得写的好烂,大神们给提提意见,多谢!
public static ArrayList combinationsString(String s) {
ArrayList res = new ArrayList();
for (int i = 1; i <= s.length(); i++) {
dfs(s, 0, i, res);
}
return res;
}
private static void dfs(String s, int start, int resLength, ArrayList<
Character> res) {
if (resLength == 0) {
System.out.println(res.toString());
... 阅读全帖 |
|
m*******g 发帖数: 410 | 33 我的一个思路是:
把字典里面单词保存起来,找到字词的最长长度,然后长字符串进行滑窗处理,每个滑
窗对所有的单词进行搜索,找到是否有字典中的单词,这貌似不是最优解。 |
|
n***t 发帖数: 76 | 34 1.有个很大很大的文件, 每一行是一句话。有可能有重复的话。
如何设计一种算法,能达到如下目的
(1)找出只出现一次的句子
(2)找出类似的句子。 (类似的定义是:两个句子只相差一个单词但是相同的单词
顺序需要一样。 比如"I love you" 和 "I love", "I love him", "I love you two"
都可以算作是类似的句子)
题目并没有说需要分布式算法还是单机算法。
2. 有很多很大的文件,文件中每一行是一个正整数。 所有文件中,数字的总
数量是Y。 所有这些数字的数值范围是[1,X],可能有重复。 (换句话说,如果每一
个数字都不一样的话那么X==Y,但是实际情况可能是X接近于Y)
如何设计分布式算法,找到最小的没有出现的数?
3. 给一个字符串S,如何在S的前端加最少字符使得S成为一个回文?只能在前端加,不
能在中间或者后端加。 |
|
h**********c 发帖数: 4120 | 35 1. 如果句子长度有限,可以先分析
比如16,
In addition, 可以就每个句子的高频字母进行分类
比如
i love you
o2e1i1l1v1
I do not give shit
o2t2...
如果你的copora 有也这样的分类,估计能直接把句子找出来
3. 应该先找input 里是不是有一个最大子回文
1.有个很大很大的文件, 每一行是一句话。有可能有重复的话。
如何设计一种算法,能达到如下目的
(1)找出只出现一次的句子
(2)找出类似的句子。 (类似的定义是:两个句子只相差一个单词但是相同的单词
顺序需要一样。 比如"I love you" 和 "I love", "I love him", "I love you two"
都可以算作是类似的句子)
题目并没有说需要分布式算法还是单机算法。
3. 给一个字符串S,如何在S的前端加最少字符使得S成为一个回文?只能在前端加,不
能在中间或者后端加。 |
|
s**********g 发帖数: 14942 | 36 1) 如果给定s3看是否是s1和s2的组合的话,有DP的解法
2) 然后就是针对一堆字符串,根据长度把可能的组合找出来,用1) 检查了吧 |
|
t****i 发帖数: 24 | 37 一个字符串,都是由 字符 a 组成,例如
"aaaaaaaaaaaaaaaaaaaaaaaaaa"
可以翻译成
the string of sequential char "a" 吗?
谢! |
|
J*******g 发帖数: 381 | 38 就是把一个字符串内的多余的空格去掉。 要求in place做。 想了几个办法,好像不
太容易,想请教一下这里的
高手。
请不要嘲笑问题简单,谢谢。 |
|
J*******g 发帖数: 381 | 39 【 以下文字转载自 Programming 讨论区 】
发信人: JiayiWang (noname), 信区: Programming
标 题: Re: 请教一个简单字符串程序 (转载)
发信站: BBS 未名空间站 (Thu Aug 27 20:51:22 2009, 美东)
就是连续的空格符,把它压缩成一个单独的空格。 string之前和之后的空格也是要去
掉。 谢谢。 |
|
m**k 发帖数: 4039 | 40 【 以下文字转载自 Internet 讨论区 】
【 原文由 monk 所发表 】
例如,输入Jan. 1 2001,
怎么把它翻译成日期型的,对它进行加减运算,
然后再变成字符串打印出来?
多谢多谢! |
|
WB 发帖数: 170 | 41 想要吧...放在很长的路径path截断后的前面or后面,
.net的那个elpsis类好像只能画,不能得到截短后的字符串。
比如
c:/adssdhks/dsadsd/dsdsd/file1
->
c:/ass/.../dsdsd/file1
or
->
.../dsdsd/file1
java也有吗? |
|
t*****x 发帖数: 3 | 42 我不会java,但由于项目需要在编一个java程序。需要把浮点型
变量进行强制类型转换成字符串。
请各位高手指点,应该如何做?
谢谢! |
|
h****w 发帖数: 41 | 43 怎么获得java applet句柄,然后往指定的文本框填字符串? |
|
l***e 发帖数: 480 | 44 类里的字符串向量赋值,总报错:
java.lang.NullPointerException
定义了一个类:
CLASS MP{
Vector AAA;
.....
};
.....
String STR=“XXXXX”;
MP mp1= new MP();
mp1.AAA.add(STR); 〈--- EXCEPTION
什么问题? |
|
t**********s 发帖数: 930 | 45 比如就是将字符串 "47C3CC" 转为16进制的数字 47C3CC
有没有现成的Java Method?
谢谢 |
|
h*****y 发帖数: 68 | 46 比如说在txt文件里有如下格式的01字符串,每行10位数字为一个node
1 0 1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 0 1 1 0 0
...
怎样读出这些node,转换成bit流格式,以便进一步对每个node进行比较?
我想应该弄成BitSet,怎么弄呢? |
|
l*****n 发帖数: 1648 | 47 sed的替换字符不支持\n
tr只能换字符,不能换字符串
有什么好方法? |
|
l*****n 发帖数: 1648 | 48 sed的替换字符不支持\n
tr只能换字符,不能换字符串
有什么好方法? |
|
b*********n 发帖数: 1258 | 49 我有这样的一个文件
是一个字符串,比如说abcde
想load进入matlab然后分析
我想生成一个array
然后每一个字母是一个a[1], a[2],a[3]...
不知道怎么实现
我用load or textread
就把输入文件都存到一个a[1]里面了 |
|
t*****l 发帖数: 121 | 50 如果字符串很长的话,cout输出会自动换行。是不是因为stream overflow?
有什么指令可以禁止系统自动换行吗? |
|