File tree 3 files changed +62
-14
lines changed
3 files changed +62
-14
lines changed Original file line number Diff line number Diff line change
1
+ #include < stdio.h>
2
+ #include < assert.h>
3
+ #include < string.h>
4
+
5
+ char *mystrcpy (char * dest, const char *src)
6
+ {
7
+ assert (dest != NULL && src != NULL );
8
+ assert (dest < src || strlen (src) < (unsigned int )(dest - src));
9
+ if (src == dest)
10
+ return dest;
11
+ char *ret = dest;
12
+ while (' \0 ' != (*dest++ = *src++))
13
+ ;
14
+ return ret;
15
+ }
16
+
17
+ int main ()
18
+ {
19
+ char dest[1024 ];
20
+ char src[] = " abcdef" ;
21
+ mystrcpy (dest, src);
22
+ printf (" %s\n " , dest);
23
+ return 0 ;
24
+ }
Original file line number Diff line number Diff line change 1
1
CC = g++
2
2
CPPFLAGS = -Wall
3
- all : chapter01 chapter03 chapter06 chapter25
4
3
4
+ FILE_SUFFIX = cpp
5
5
6
- chapter01 : chapter01.cpp
7
- $( CC ) $( CPPFLAGS ) chapter01.cpp -o chapter01
6
+ SRCS := $( wildcard * . $( FILE_SUFFIX ) )
7
+ EXES := $( patsubst % . $( FILE_SUFFIX ) , % , $( SRCS ) )
8
8
9
- chapter03 : chapter03.cpp
10
- $(CC ) $(CPPFLAGS ) chapter03.cpp -o chapter03
9
+ all :$(EXES )
11
10
12
- chapter06 : chapter06.cpp
13
- $(CC ) $(CPPFLAGS ) chapter06.cpp -o chapter06
14
-
15
- chapter25 : chapter25.cpp
16
- $(CC ) $(CPPFLAGS ) chapter25.cpp -o chapter25
11
+ $(EXES ) : % : % .$(FILE_SUFFIX )
12
+ $(CC ) $(CPPFLAGS ) $< -o $@
17
13
18
14
clean :
19
- rm chapter01
20
- rm chapter03
21
- rm chapter06
22
- rm chapter25
15
+ rm -rf $(EXES )
Original file line number Diff line number Diff line change
1
+ def strstr (haystack , needle ):
2
+ return any (
3
+ all ((haystack [i + j ] == needle [j ] for j in xrange (0 , len (needle ))))
4
+ for i in xrange (0 , len (haystack ) - len (needle ) + 1 ))
5
+
6
+
7
+ def test_strstr ():
8
+ print "test_strstr"
9
+ print strstr ("abcdf" , "cd" ) is True
10
+ print strstr ("abcdf" , "ef" ) is False
11
+
12
+
13
+ def find_no_repeat_char (string ):
14
+ maxchar = 256
15
+ charlst = [0 for i in xrange (maxchar )]
16
+ for c in string :
17
+ charlst [ord (c )] += 1
18
+ for i in xrange (0 , maxchar ):
19
+ if charlst [i ] == 1 :
20
+ return chr (i )
21
+
22
+
23
+ def test_find_no_repeat_char ():
24
+ print "test_find_no_repeat_char"
25
+ s = "abaccdeff"
26
+ print find_no_repeat_char (s ) is "b"
27
+
28
+
29
+ if __name__ == "__main__" :
30
+ test_strstr ()
31
+ test_find_no_repeat_char ()
You can’t perform that action at this time.
0 commit comments