d*****d 发帖数: 180 | 1 攒人品
在一个字符串s中找t的anagram:
先记录下每个字符出现的次数,map或数组都可以,用和t同长度的移动窗口扫描一遍s,
每向后移动一步,如果新加入字符在t中,就减少第一步记录下来的字符count, 不是
就忽略,窗口最左边同时移除一个字符,如果此字符在t中,相应count加一,否则忽略
。。 移动过程中只考虑t中出现字符,count可能出现负数,我们关系的是所有count同
时为零的时候,即答案。不需要扫描map或数组判断0的个数,使用一个全局零个数计数
器就可,每回改变字符count时,如果改后变为零或从零变非零,就修改这个全局计数
器,然后根据这个计数器判断是否发现答案。 |
d*****d 发帖数: 180 | 2 1. 翻转字符串中原音字母。
2. iterator of a list iterators with sorted elements: iterator +优先队列+
customized comparator + 加上一点corner case handling..
3. 只有一个转换小写字符函数, 参数是一个字符,返回一个这个其小写字符, 假设
不知道大小写之间关系('X'='x'-'a'+'A' 不允许的 ),写转大写的函数。
4.Sudoku solver优化
5.两个concurrency问题 基本是写semaphore
6. 3sum变形, 找所有<=
7. 写 web server,性能,安全等考虑
8. web hit count设计... |
w********2 发帖数: 111 | |
l*****a 发帖数: 14598 | 4 3/4很清楚了吧?
3
use
char toLower(char c)
to implement
char toUpper(char c)
4 估计先写了个sudoku solver然后被要求优化
【在 w********2 的大作中提到】 : 楼主能够相许叙述下1,3,4的题目么?谢谢了
|
w********2 发帖数: 111 | 5
3的话,如果不能用大小写的已知条件,不太清楚如何能够写出toUpper。求解
【在 l*****a 的大作中提到】 : 3/4很清楚了吧? : 3 : use : char toLower(char c) : to implement : char toUpper(char c) : 4 估计先写了个sudoku solver然后被要求优化
|
l*****a 发帖数: 14598 | 6 char a=toLower(b);
if(a!=b) what does that mean?
if(a==b) what does that mean?
【在 w********2 的大作中提到】 : : 3的话,如果不能用大小写的已知条件,不太清楚如何能够写出toUpper。求解
|
j**********3 发帖数: 3211 | 7 小白弱问,hitCount 怎么设计,在backend这个controller里边设计个counter?这样
的话,每次call的值能保留下来么?还是保存数据库里?不过一个table里每个link只
保留一个数字会不会太浪费阿 |
s*w 发帖数: 729 | 8 brain teaser
【在 l*****a 的大作中提到】 : char a=toLower(b); : if(a!=b) what does that mean? : if(a==b) what does that mean?
|
x******0 发帖数: 178 | 9 我猜他的意思是说大写之间的距离和小写之间的距离可能不是线性的。就像个encoding
和decoding的关系。
如果能有lower(x) > lower(y) -> upper(x) > upper(y) 的关系,那就来个binary
search?
实在不懂是啥意思。。
【在 l*****a 的大作中提到】 : char a=toLower(b); : if(a!=b) what does that mean? : if(a==b) what does that mean?
|
e***l 发帖数: 710 | 10 3. 只有一个转换小写字符函数, 参数是一个字符,返回一个这个其小写字符, 假设
不知道大小写之间关系('X'='x'-'a'+'A' 不允许的 ),写转大写的函数。
写个循环,i从0到255,如果input == toLower(i) 并且 i != toLower(i),返回i。没
找到说明input是大写,返回input。 |