由买买提看人间百态

topics

全部话题 - 话题: strs
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
O*z
发帖数: 109
1
来自主题: Java版 - 菜鸟问个简单的问题
在自学java,用eclipse写了下面的简单的代码,要实现的功能是:如果一个字符串中的
前两个字符和最后两个字符相同,则去掉最前面两个字符,返回其余的字符。但是下面
的代码就是不work,我觉得逻辑上没问题啊,请帮忙看看,谢谢
public class without2
{
public static void main(String[] args)
{
String str1 = "HelloHe";


System.out.println(rmfirsttwo(str1)); //expected result: lloHe
}

public static String rmfirsttwo(String str)
{
int strLength = str.length();
if(strLength <2)
{
return str;
}
e... 阅读全帖
n******1
发帖数: 3756
2
来自主题: Java版 - 问个set和literal String的问题
为什么我这里的literal string 和我的封装类equals不上呢,放进set里面也说不相同
,但是hashcode是相等
import java.util.HashSet;
import java.util.Set;
public class SetTesting{

static class WrapString{
String str;
public WrapString(String str){
this.str = str;
}

@Override
public String toString(){
return str;
}

@Override
public int hashCode(){
return str.hashCode();
}
@Override
p... 阅读全帖
l****g
发帖数: 249
3
$ str=`echo "456-456-1234"|sed "s/[0-9]/%/g"`
$ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
$
$ str=`echo "abc-456-1234"|sed "s/[0-9]/%/g"`
$ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
NOT PHONE NUMBER
$
$ str=`echo "617--1235555"|sed "s/[0-9]/%/g"`
$ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
NOT PHONE NUMBER

码。
j*******a
发帖数: 101
4
来自主题: Programming版 - reverse words, not the Microsoft one!!!
i wrote one. it works well.
#include
using namespace std;
char* reverse_word (char* str);
int main(int argc, char** argv){
char str[] = "this is very beautiful ";
cout <<"["< cout << "["<< reverse_word(str)<<"]"< char str2[] = "jokeslala rejected some 100k offers ";
cout <<"["< cout << "["<< reverse_word(str2)<<"]"<
system("pause");
return 0;
}
char* reverse_word (char* str){
if (str =
e******d
发帖数: 14
5
来自主题: Programming版 - weird output
void func(void)
{
char *str = (char *) malloc(100);
strcpy(str, “"hello");
free(str);
if(str != NULL)
{
strcpy(str, “"world");
printf("%s\n", str);
}
}
The output is "world" on linux. The freed memory still can be accessed?
s****u
发帖数: 118
6
来自主题: Programming版 - 来,做题吧。
单纯枚举permutation可以
void permutation(int depth, int len, string str) {
if (depth >= len) {
// aaa
return;
}
for (int i = depth; i < len; ++i) {
swap(str[i], str[depth]);
permutation(depth + 1, len, str);
swap(str[i], str[depth]);
}
}
g*********s
发帖数: 1782
7
来自主题: Programming版 - free(char *)的问题 (转载)
【 以下文字转载自 JobHunting 讨论区 】
发信人: gandjmitbbs (Nothing), 信区: JobHunting
标 题: free(char *)的问题
发信站: BBS 未名空间站 (Mon Dec 10 13:10:23 2007)
下面的代码有没有内存泄漏?如果希望提前释放掉str[3,4,5]的空间如何操作?
char *str=(char *) malloc(sizeof(char)*(strlen("hello")+1));
strcp(str, "hello");
str[2]=0;
printf("%s\n",str);
free(str);
X****r
发帖数: 3557
8
来自主题: Programming版 - 请教char *和char []的判断
你这个程序还有一些可改进的地方:
1)count是不需要的,最后两个指针的差就是要返回的结果。
2)对于函数参数来说,char str[]和char *差别不大,
你这种情况用后者更方便,可以不用pos。
int removeDuplicateString(char* str){
char *c;
for(c = str; *c; c++)
if(*c != *(c+1)) *str++=*c;
*str = '\0';
return c - str;
}
就我个人而言会把*(c+1)写成c[1],不过这个就见仁见智了。
X****r
发帖数: 3557
9
来自主题: Programming版 - printf("%s\n", NULL)的结果
因为对于任何str,printf("%s\n", str);等价于puts(str),所以gcc作了优化,
这里正好str是NULL。printf("%s", str);并不等价于puts(str),所以真正的
printf被调用了,而glibc里的printf是可以处理NULL的。
其实从第一贴开始我就在说这个,要是还不清楚的话我实在不知道该怎么讲了。
e********r
发帖数: 2352
10
来自主题: Programming版 - 请教一个C++的问题
为了使用try ... throw ... catch的方式处理异常,写了以下一段程序,就是读取一
个文件
ifstream file;
file.exceptions(ifstream::failbit | ifstream::badbit);
try{
file.open("./file");
string str;
while(getline(file, str))
{
cout< }
}
catch(ifstream::failure e)
{
cout<<"Return information: "< }
file.close();
请问为什么总是会执行catch... 阅读全帖
w*****1
发帖数: 15
11
来自主题: Programming版 - A string replacement problem from leetcode
一个奇怪的现象。下面的code来自 http://leetcode.com/2010/11/microsoft-string-replacement-problem.html
我试了VS2010, VS2012. All get Access violation error on
if (matched)
*pSlow++ = 'X'; // <----error here
First-chance exception at 0x00AD14A3 in test.exe: 0xC0000005: Access
violation writing location 0x00AD586C.
读code和用debugger都看不出问题。 请哪位高人火眼金睛指点一下
#include
#include
#include
bool isMatch(char *str, const char* pattern) {
while (*pattern)
if (*str++ != *pattern++)
... 阅读全帖
r*****8
发帖数: 2560
12
来自主题: Programming版 - C 语言,初学者问题(3)
如果free(str); 没写,像以下的例子。
程序运行结束以后,这15字节的内存会遗失吗?
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
#include
void main() {
char *str;
str = (char *) malloc(15);
strcpy(str, “abc”);
printf("\n. %s \n", str);
free(str); // 假如这句没写。
}
s****4
发帖数: 335
13
看到了斑竹的置顶声明,但似乎这里最近还有不少有关法轮功的文章,所以冒昧一贴,
在此仅请斑竹谅解,这帖意在劝善救人,谢谢
更多真相, 请到真相之光俱乐部
http://www.mitbbs.com/club_bbsdoc2/everybodydeservestruth_0.htm
http://www.minghui.org/mh/articles/2014/4/7/中共又扮活广告-众欧
【字号】大 中 小
【明慧网二零一四年四月七日】(明慧记者雪莉综合报道)二零一四年四月二日晚,神
韵世界艺术团在比利时布鲁塞尔的国家剧院隆重上演,拉开欧洲巡演比利时站六场演出
的序幕。连日来,数百名欧洲各国高层和北约官员慕名前来观赏神韵。他们有的低调含
蓄,有的开朗直接,各自表达对神韵的赞叹和感激之情。
图1:在欧洲巡演的神韵艺术团于二零一四年四月二日至六日在欧盟所在地——比利时
布鲁塞尔的国家剧院上演了六场演出。
图1:在欧洲巡演的神韵艺术团于二零一四年四月二日至六日在欧盟所在地——比利时
布鲁塞尔的国家剧院上演了六场演出。连日来,几百名各国高层和北约官员慕名而来,
他们有的低调神秘,有的侃侃而谈,表... 阅读全帖
j**l
发帖数: 2911
14
面试的时候,test cases是重要的考查方面
假定有一个01字符串,用计数排序实现把所有的0放在左边,所有的1放在右边。
白板程序大致是这样
void CountSort01String(char str[])
{
if (str == NULL)
return;
int count0 = 0;
int count1 = 0;
int i;
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] == '0')
count0++;
else if (str[i] == '1')
count1++;
else
{
printf("Invalid input string.\n");
return;
}
}
int n = count0 + count1;
for (i = 0; i < c
K******g
发帖数: 1870
15
来自主题: JobHunting版 - 狗狗电面
我的代码
/*write a function dayOfWeek("01-08-2010") return "Sunday"*/
//assuming the base date is xxxx year Jan 1st
enum weekday {Sun=0, Mon=1, Tue=2, ...}
int dayOfWeek(char* str)
{
if(str == NULL) return;
int month = atoi(str);
int day = atoi(str[3]);
int year = atoi(str[6]);

int days = (year - base_year)*365 + howManyLeapYears(year, baseyear);
days += daysStartingThisYear(month, day, year);
return (days%7+base_weekday)%7;
}
int daysStartingThisYear(int month, int d
c***2
发帖数: 838
16
revert not reverse
an exmaple
str="abc"
foo(str)
str=="ABC"
revert(str)
str=="abc"
very simple
j*********0
发帖数: 5
17
来自主题: JobHunting版 - 怎么检查极端情况?
比如下面的一个function
void Removechars(char str[], char remove[]);
这里有两个极端情况,一个是str为空,一个是str=""。请问我下面的这种极端情况检
查代码对吗?
void Removechars(char str[], char remove[])
{
if (remove==NULL||str[0]==NULL)
{
return ;
}
}
j*****u
发帖数: 1133
18
这个短些,用你的思路
static int LongestUniqueSubstring(string str)
{
if (string.IsNullOrEmpty(str)) return 0;
var lastPosition = new Dictionary(); // or use array with len
gth of #unicode_char
int maxLength = 0;
for (int head = 0, tail = 0; tail < str.Length; tail++)
{
int last;
if (lastPosition.TryGetValue(str[tail], out last))
head = last + 1;
else
maxLength = Math.Max(maxLength, tail - head + 1);
lastPosition[str[tai... 阅读全帖
j******a
发帖数: 55
19
来自主题: JobHunting版 - 问一个老的google面试题

substring的起
点,从该位置往后直到substring能cover所有字符。那么最多就有n个起点。问题是,
如何每次只用
O(1)来确定substring长度。
[0]和str[20]
两个地方。假设当前已经确定以str[0]为起点的substring长度。接下来应该确定以str
[1]为起点的
substring长度。该substring丢弃了str[0],所以必须要至少在str[20]结束,否则字
符a没被
cover。这就是基本思路。
这个空间复杂度有点高,不如ls的想法,只需要动态更新一个histogram,时间复杂度都
是2n
f***g
发帖数: 214
20
来自主题: JobHunting版 - 问一道关于字符串的面试题
仅仅判断(str[i]==str[i-1])
还不够
要看str[start]和str[i-1]之间有没有str[i]
Z**********4
发帖数: 528
21
来自主题: JobHunting版 - java没有指针真麻烦
bool isMatch(char *str, const char* pattern) {
while (*pattern)
if (*str++ != *pattern++)
return false;
return true;
}
以上是C code 判断str里面是不是存在pattern
如果改成java的话
private static boolean isMatch (char[] str,char[] pattern)
{
int i=0;
while(i {
if(str[i]!=pattern[i])
return false;
i++;
}
return true;
}
是不是只能这样啊?java不能用指针嘛?还有我只能用i char数组作为参数 这样很不方便啊 我试了pattern.charAt(i)!=... 阅读全帖
j*******r
发帖数: 52
22
试贴一个C++代码,循环+递归,用一个bitset代表当前字符是否已经在之前位置被使用。
1 #include
2 #include
3 #include
4
5 using namespace std;
6
7 void permutation(const char* str, bitset<4> used, string r){
8 if(r.size() == strlen(str)){
9 cout< 10 }
11 for(int i = 0; i < strlen(str); ++i){
12 if(used[i])
13 continue;
14 used.set(i);
15 r += str[i];
16 permutation(str, used, r);
17... 阅读全帖
j*******r
发帖数: 52
23
试贴一个C++代码,循环+递归,用一个bitset代表当前字符是否已经在之前位置被使用。
1 #include
2 #include
3 #include
4
5 using namespace std;
6
7 void permutation(const char* str, bitset<4> used, string r){
8 if(r.size() == strlen(str)){
9 cout< 10 }
11 for(int i = 0; i < strlen(str); ++i){
12 if(used[i])
13 continue;
14 used.set(i);
15 r += str[i];
16 permutation(str, used, r);
17... 阅读全帖
s******d
发帖数: 61
24
可以像这样通过以为来做吗?还是%10比较好,还有其他什么更好的方法吗?
public static boolean judgepalidrom(int num){
char[] ch=new char[Integer.size];
for(int i=0;i char[Integer.size-i-1]=(char)((num>>i)&1+'0');
}
String str=new String(ch);
for(int j=0;j if(str[j]!=str[str.length()-j-1])
return false;
}
return true;
}
s*******f
发帖数: 1114
25
来自主题: JobHunting版 - one facebook software problem
//Implement a function string balanceParanthesis(string s); which given a
//string s consisting of some parenthesis returns a string s1 in which
//parenthesis are balanced and differences between s and s1 are minimum.
//Eg - "(ab(xy)u)2)" -> "(ab(xy)u)2"
//")))(((" -> ""
void DelBrackets(char *str){
if (!str)
return;
deque sc;
deque sp;
char *p = str;
while (*p){
if (*p == '('){
sc.push_back('(');
sp.push_back(p);
}... 阅读全帖
w****x
发帖数: 2483
26
来自主题: JobHunting版 - twitter intern面经
/*
Given tweet's inverted index,how to find phrases combination,e.g
phrase "twitter good tool", "twitter is a good tool" is better than "twitter
is good,
facebook is a better tool"
*/
bool GetClosestPhrase(hash_map>& dic, vector& strs,
int& nStart, int& nEnd)
{
for (vector::iterator it = strs.begin(); it != strs.end(); it++)
{
if (dic.find(*it) == dic.end())
return false;
}
int nNum = strs.size();
vector*> vec;
ve... 阅读全帖
w****x
发帖数: 2483
27
来自主题: JobHunting版 - twitter intern面经
/*
Given tweet's inverted index,how to find phrases combination,e.g
phrase "twitter good tool", "twitter is a good tool" is better than "twitter
is good,
facebook is a better tool"
*/
bool GetClosestPhrase(hash_map>& dic, vector& strs,
int& nStart, int& nEnd)
{
for (vector::iterator it = strs.begin(); it != strs.end(); it++)
{
if (dic.find(*it) == dic.end())
return false;
}
int nNum = strs.size();
vector*> vec;
ve... 阅读全帖
k*****y
发帖数: 744
28
来自主题: JobHunting版 - 请教一道题目
traverse一遍string,记当前位置是i;
用map pos记录word里面相应字母出现在i之前最后的位置;
如果word中每个字母都出现了,找出pos中位置最小的一个,就可以算出以i为结尾最短
的长度。
====================================
string getShortestSubstr(string &word, string &str) {
map pos;
int left, length=str.length()+1;
for( int i=0; i char ch = str[i];
if( word.find(ch) != string::npos ) {
pos[ch] = i;
if( pos.size() == word.size() ){
int leftPos = i;
... 阅读全帖
l*********8
发帖数: 4642
29
来自主题: JobHunting版 - Text Justification
这个题目很容易出错啊。
我写在纸上的程序好几个bugs。
加上在电脑的调试修改的时间,我总共花了两个小时才让程序基本正确(还不敢保证百分百正确,可能需要更多的测试案例)。这么慢怎么面试啊?
下面是程序(测试程序就不贴了):
void JustifyOneLine(const vector & words, int L, int lineStart, int
& lineEnd, vector & blankNum)
{
blankNum.clear();
int lengthSum = words[lineStart].size();
for (lineEnd = lineStart+1; lineEnd < words.size() && lengthSum + 1 +
words[lineEnd].size() <= L; lineEnd++) {
lengthSum += 1 + words[lineEnd].size();
blankNum.push_back(1);
}
int ... 阅读全帖
l*********8
发帖数: 4642
30
来自主题: JobHunting版 - Text Justification
这个题目很容易出错啊。
我写在纸上的程序好几个bugs。
加上在电脑的调试修改的时间,我总共花了两个小时才让程序基本正确(还不敢保证百分百正确,可能需要更多的测试案例)。这么慢怎么面试啊?
下面是程序(测试程序就不贴了):
void JustifyOneLine(const vector & words, int L, int lineStart, int
& lineEnd, vector & blankNum)
{
blankNum.clear();
int lengthSum = words[lineStart].size();
for (lineEnd = lineStart+1; lineEnd < words.size() && lengthSum + 1 +
words[lineEnd].size() <= L; lineEnd++) {
lengthSum += 1 + words[lineEnd].size();
blankNum.push_back(1);
}
int ... 阅读全帖
l*********8
发帖数: 4642
31
来自主题: JobHunting版 - leetcode上wild match
贴一下我的程序,通过了leetcode judge.
感觉还是有些繁琐.
class Solution {
public:
bool isMatch(const char *s, const char *p) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(!s || !p)
return false;
if(p[0] == '\0' && s[0] != '\0')
return false;
const char * star = NULL;
const char * nextStar = NULL;
if (p[0] == '*') {
star = p;
p++;
}
while (1) {
n... 阅读全帖
d****n
发帖数: 233
32
来自主题: JobHunting版 - leetcode上wild match
Here is a iterative one. I know there is another iterative one which is more
compact.
bool isMatch(const char *str, const char *pattern) {
const char *pstr = str, *pp = pattern;
bool findStar = false;
while (*pstr && *pp) {
if (*pp == '*') {
str = pstr;
pattern = pp + 1;
findStar = true;
}
if (*pstr == *pp || *pp == '?') {
pstr++;
pp++;
con... 阅读全帖
l****c
发帖数: 838
33
来自主题: JobHunting版 - C的fscanf的问题 (转载)
You should read in the string and parse.
You don't know how long the first part string is or how long the number is.
So if you define:
char tempprice[10];
char ticker[10];
You have the risk of buffer overflow.
Here is my solution. I debug it as I wrote it, so it is not optimized.
it is pure C. You can get result with 2 lines of perl or python code
============================
#include
#include
#include
int main()
{
char *str = "GOOD|89.34";
char *ptoken, *... 阅读全帖
a*******y
发帖数: 1040
34
来自主题: JobHunting版 - Find consecutive repeated string
我就在想有没有更好的办法出了用sufix tree
写了个傻的,不过觉得有更好的
bool strMatch(char* str, int start, int length)
{
for (int i = 0; i {
if (str[start+i] != str[start-length+i])
return false;
}
return true;
}
bool ReturnConsecutiveString(char* str, int n, int& startindex, int&
endindex)
{
int i = 1, j,k;
bool bfail = false;
while (i < n)
{
for (j = 1; (i+j < n) && (i-j-1 >=0);j++)
{
for (k = 0; k<=j;k++)
{
... 阅读全帖
p*****2
发帖数: 21240
35
来自主题: JobHunting版 - 问个括号问题的迭代解法
class Element{
String str;
int left;
int right;

public Element(String s, int l, int r){
str=s;
left=l;
right=r;
}
}

void print(int n){
Queue q=new LinkedList();
q.add(new Element("",0,0));
while(!q.isEmpty()){
Element e=q.poll();
if(e.left==n && e.right==n){
System.out.println(e.str);
}
else{
... 阅读全帖
g****y
发帖数: 240
36
来自主题: JobHunting版 - 问两道G家的题
第二题,只需要把第一个string中的数字map到第二个string的order就好了。
def reorder(str, order_str):
d = {c:i for i, c in enumerate(order_str)}
str = [c for c in str]
def get_key(c):
if c in d:
return d[c]
else:
return len(d)
str.sort(key=get_key)
return "".join(str)
z******e
发帖数: 82
37
来自主题: JobHunting版 - 发个Twitter的面试题
多谢大牛的test case
private static String uncomment(String str) {
boolean slash2 = false;
boolean inStr = false;
boolean slashstar = false;
StringBuilder sb = new StringBuilder();
char lastc = ' ';
char c = ' ';
int deleteStart = -1;
for (int i = 0; i < str.length(); i++) {
lastc = c;
c = str.charAt(i);
sb.append(c);
// ""
if (c == '"' && !slash2 && !slashstar) {
... 阅读全帖
w****x
发帖数: 2483
38
来自主题: JobHunting版 - 谷歌面经
struct NODE
{
string str;
NODE* pLft;
NODE* pRgt;
NODE(const char* szStr = "") : str(szStr), pLft(NULL), pRgt(NULL) {}
};
void serialize(NODE* pNode, char*& p)
{
if (p == NULL) return;
if (pNode == NULL)
{
*((int*)p) = 0;
p += sizeof(int);
return;
}

int nLen = pNode->str.length();
*((int*)p) = 1;
p += sizeof(int);
strcpy(p, pNode->str.c_str());
p += nLen+1;

serialize(pNode->pLft, p);
serialize(pNode->pRgt... 阅读全帖
c*****a
发帖数: 808
39
来自主题: JobHunting版 - 搞了小半个月,leetcode还有20题
新鲜写的 longest common prefix,之前没做过
public class Solution {
public String longestCommonPrefix(String[] strs) {
// Start typing your Java solution below
// DO NOT write main() function
if(strs.length ==0) return "";
String shortest=strs[0];
for(String s: strs){
if(s.isEmpty()) return "";
if(s.length() shortest = s;
}
int length = shortest.length();
while(true){
b... 阅读全帖
c*u
发帖数: 22
40
来自主题: JobHunting版 - 请假大家一道BB的题
一、用 HashSet 和 LinkedHashSet
String str = "cbacbbbfa";
HashSet set = new HashSet();
LinkedHashSet linkSet = new LinkedHashSet();
int len = str.length();
for (int i=0;i char ch = str.charAt( i );
if (set.contains( ch ))
linkSet.remove( ch );
else{
set.add( ch );
linkSet.add( ch );
}
}
System.out.println( linkSet.iterator().next() );

二、用 HashSet 和 LinkedList
String str = "cbacbbbfa";
HashSet set = n... 阅读全帖
t******i
发帖数: 483
41
public static void permutation(String prefix, String str) {
int n = str.length();
if (n == 0)
System.out.println(prefix);
else {
for (int i = 0; i < n; i++) {
permutation(prefix + str.charAt(i), str.substring(0, i)
+ str.substring(i + 1, n));
}
}
}
c********t
发帖数: 5706
42
来自主题: JobHunting版 - leetcode出了新题word ladder
多谢!
第一题最后发现用 char array 比 StringBuilder还快
第二题又超时了,再求帮助!
用的是双queue解法,感觉比你和wwwyhs说的hashmap>用空间
更少,时间也应该更少,为啥又超呢?(唉,我为什么又说又)
public ArrayList> findLadders(String start, String end,
HashSet dict) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList> ret = new ArrayList>(
);

int curr=1, next=0, count=1, n=start.length(), length=Integer.MAX_
VALUE... 阅读全帖
c********t
发帖数: 5706
43
来自主题: JobHunting版 - leetcode出了新题word ladder
多谢!
第一题最后发现用 char array 比 StringBuilder还快
第二题又超时了,再求帮助!
用的是双queue解法,感觉比你和wwwyhs说的hashmap>用空间
更少,时间也应该更少,为啥又超呢?(唉,我为什么又说又)
public ArrayList> findLadders(String start, String end,
HashSet dict) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList> ret = new ArrayList>(
);

int curr=1, next=0, count=1, n=start.length(), length=Integer.MAX_
VALUE... 阅读全帖
g********E
发帖数: 178
44
来自主题: JobHunting版 - 问一个c++ string的问题
想替换末位字符,目前写的是:
str.pop_back();
str.push_back(char);
试图用replace,但是似乎没有替换单一字符的选项,试了下面这个不work,
str.replace(str.end(),str.end(),"char")
想问下到底能不能用replace,应该怎么用呢?
J****3
发帖数: 427
45
char *compress(char* str){
int rlen;
int len = strlen(str);
char* dest = (char*)malloc(sizeof(char)*(2*len+1));
int j = 0;
for(int i = 0; i < len; i++){
dest[j++] = str[i];
rlen = 1;
while(i+1 < len && str[i] == str[i+1]){
rlen++;
i++;
}
dest[j++] = rlen+'0';
}
dest[j] = '\0';
return dest;
}
O(n) 但是不是inplace的 你看看行不
a******e
发帖数: 710
46
来自主题: JobHunting版 - T家电面面经并且不解为何被秒拒
我觉得30分钟做出这两道题很不简单啊。
不过这个循环的判断应该是小于等于号吧?
for (int i = 1; i <= str.size(); ++i)
nPermute *= i;
string correspPermute(string& str, int index)
{
set table;
for (auto& c : str)
table.insert(c);

int nPermute = 1;
for (int i = 1; i < str.size(); ++i)
nPermute *= i;

string res;
--index;
for (int m = index; m >= 0; --m) // 这里不应该是index应该是str.size()
{
nPermute /= m;
int idx = index / nPermute;
auto iter = table.... 阅读全帖
j*********6
发帖数: 407
47
来自主题: JobHunting版 - leetcode word break II DFS 超时
我是用DFS,和memorized 再加上 二爷指导的 pruning, 代码如下 不够感觉写得有些
麻烦 有什么问题请大家慷慨指出
顺便求教这种问题怎么分析时间复杂度
public class Solution {
public ArrayList wordBreak(String s, Set dict) {
// Note: The Solution object is instantiated only once and is reused
by each test case.
// 1. get the min and max length of words in dictionary, used for
pruning.
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for(String str : dict){
min = Math.min(min, str... 阅读全帖
p*********y
发帖数: 17
48
来自主题: JobHunting版 - leetcode word break II DFS 超时
优化一下就能过。
==================================================
public class Solution {
public ArrayList wordBreak(String s, Set dict) {
int N = s.length();
ArrayList result = new ArrayList();
if (N == 0) return result;
int maxLen = 0;
for (String str : dict) {
maxLen = Math.max(maxLen, str.length());
}
StringBuilder buffer = new StringBuilder();
HashSet invalid = new HashSet阅读全帖
P**********k
发帖数: 1629
49
来自主题: JobHunting版 - ebay第一轮电话面经
#include
#include
using namespace std;
void reverseWords(const string str_in, string &str_out, int length){

int i=0, j=0;

while(i
if(!is_letter(str_in, i)){
str_out[j++] = str_in[i++];
}else{
int start = i;
while(is_letter(str_in, i) && i i++;
}
int end = i-1;
//reverse copying
for(int k=end; k>=start; k--){
... 阅读全帖
s***e
发帖数: 403
50
来自主题: JobHunting版 - 上一道题给你们休息休息
我也给个解。
这个题目的关键其实是两个字符之间的bitwise roll。因为要检验的只有8个bits。所
以只要每次取两个字符c1和c2,然后依次roll bits即可。
int countPattern2(char c1, char c2, char pattern)
{
int count = 0;
static const char mask = (1 << 7);
int i;
for(i = 0; i < 8; ++i)
{
if (c1 == pattern)
++count;
c1 <<= 1;
c1 += ((c2 & mask) ? 1 : 0);
c2 <<= 1;
}
return count;
}
int countPattern(const char* str, char pattern)
{
const s_length = strlen(str);
int i;
int count = 0... 阅读全帖
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)