剑指offer第一题和第二题(python版和java版)

来源:互联网 发布:淘宝店怎么上传图片 编辑:程序博客网 时间:2024/06/06 05:07

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路:从最左下角的数开始遍历,若目标数比其小,就往上面走,否则就往右边走。

java代码:

public class Solution {
    public boolean Find(int target, int [][] array) {
        int row = array.length;
        int col = array[0].length;
        int j=row-1,i=0;


        while(j>=0 && i<col){
            if(target==array[j][i]){
                return true;
              }
            else if(target>array[j][i]){
                i++;
            }
            else{
                j--;
            }
        }
        return false;
    }
}

python代码:

# -*- coding:utf-8-*-
classSolution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        # -*- coding:utf-8-*-
        n=len(array)
        flag='false'
        fori in range(n):
            iftarget in array[i]:
                flag='true'
                break
        returnflag
whileTrue:
    try:
        S=Solution()
        L = eval(raw_input())
        target= L[0]
        array=L[1]
        print (S.Find(target,array))
    except:
        break
    添加笔记
题目2:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

思路:在java中用字符串构建器,每次原字符串中遇到空格,就在字符串构建器中添加20%。

          python中直接使用replace就行

java代码:

 public class Solution {
        public String replaceSpace(StringBuffer str) {
            StringBuilder builder = new StringBuilder();
            for(int i=0;i<str.length();i++){
                if(str.charAt(i)==' '){
                    builder.append('%');
                    builder.append('2');
                    builder.append('0');
                }
                else{
                    builder.append(str.charAt(i));
                }
            }
            return builder.toString();
        }
    }

python代码:



2
3
4
5
# -*- coding:utf-8-*-
classSolution:
    # s 源字符串
    def replaceSpace(self, s):
        returns.replace(' ''%20')