由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - cc1501.3题,请帮忙测试下代码
相关主题
急问F家面试一题leetcode: Remove Duplicates from Sorted Array
菜鸟求救 请大家看看我的代码有没有问题再问个简单的C问题
请教一个字符串比较排序的问题 (转载)做了一下scramble string
G家电面题。G家电面写代码什么要求?LeetCode Scramble String 疑问
为什么加个结束符leetcode就run time error呢?wildcard matching 大case runtime error
回馈本版,贴GOOGLE电话面经[合集] PayPal@eBay onsite(失败)题目和经验
顶风上来问道题:一个很大char[], 如何in-place 删除重复元素问一个精华区里的题目
请教C/C++小问个题?
相关话题的讨论汇总
话题: len话题: int话题: str话题: 代码话题: char
进入JobHunting版参与讨论
1 (共1页)
f*****2
发帖数: 141
1
这是一个大牛给的一个简单的O(n^2)的c代码,可我用eclipse运行时总有错误,如方
便的话,请帮我测试一下code,我想找到问题出自哪里,非常感谢。code如下:
void removeDuplicate(char s[])
{
int len = strlen(s);
if(len < 2) return;
int p = 0;
for(int i=0; i < len; ++i)
{
if(s[i] != '\0')
{
s[p++] = s[i];
for(int j=i+1; j < len; ++j)
if(s[j]==s[i])
s[j] = '\0';
}
}
s[p] = '\0';
}
s********u
发帖数: 1109
2
首先,cc150新版没有这道题了。
其次,你代码都没贴全啊大哥。
f*****2
发帖数: 141
3
新版是第五版?只找到第四版的,code补全了,大侠帮忙看看吧

【在 s********u 的大作中提到】
: 首先,cc150新版没有这道题了。
: 其次,你代码都没贴全啊大哥。

s********u
发帖数: 1109
4
今天bbs有问题,刚刚写了一堆没有了,先贴代码:
void remove(char *str){
int left = 0, right = 0;
bool unique = true;
while(str[right]!= '\0'){
//你也可以用一个 bool unique(char *str,int right)函数来判断,不用这个
unique变量
unique = true;
for(int i = 0; i < right; i++){
if( str[i] == str[right] ){
duplicate = false;
break;
}
}
if(unique){
str[left++] = str[right++];
}else{
right++;
}
}
str[left] = '\0';
}
int main(){
char str[9] = "abcabxyx";
remove(str);
cout< }
s********u
发帖数: 1109
5
首先删除一个字符你为什么要用'\0'覆盖它呢,这个是字符串的结束符啊,比如"
abcabxyx"被你这么一弄,a变成'\0',字符串就变成abc了。
删除的话,首先想到的应该是把后面的平移上来把。
然后我更推荐对当前元素,往前看而不是往后看有没有重复的,这样的话,保证当前元
素之前的都是不重复的,并且总是操作当前元素,而不是后面随机的一个位置。
最后就是这种情况len其实是一直在变的,你的for循环i while(str[i]!= '\0')来的容错率高,有必要的地方再i++
f*****2
发帖数: 141
6
用'\0'覆盖其实就是赋空值,其实这种思路是最简单,易理解的。如果是把后面的往前
移位,那还的判断这后面的一位和前面的所有
位还又没有重复的,其实更复杂。
这个解的妙处在于定义了一个flag:p,用abcabxyx这个例子,当第二个a被赋'\0'后,
第一层loop下标i往前走,然后如果这个新值
不是'\0',他的值就赋给p,也就是说在这步操作后字符串变成了abcx,而不是abc了,
然后当i结束后,再将有效字符串最后一位
赋'\0',这样字符串结束,新的字符串就是删除了所有重复的字符
当然你的方法也很好,我一试着写过,只是觉得这个方法更直观,容易理解,非常感谢
你和我一起讨论,学到了很多,多谢。
1 (共1页)
进入JobHunting版参与讨论
相关主题
问个题?为什么加个结束符leetcode就run time error呢?
继续攒人品 报几家面经回馈本版,贴GOOGLE电话面经
C++ 面试题顶风上来问道题:一个很大char[], 如何in-place 删除重复元素
请问这样写程序错了吗?请教C/C++小
急问F家面试一题leetcode: Remove Duplicates from Sorted Array
菜鸟求救 请大家看看我的代码有没有问题再问个简单的C问题
请教一个字符串比较排序的问题 (转载)做了一下scramble string
G家电面题。G家电面写代码什么要求?LeetCode Scramble String 疑问
相关话题的讨论汇总
话题: len话题: int话题: str话题: 代码话题: char