zoukankan      html  css  js  c++  java
  • lintcode13- strStr- easy

    For a given source string and a target string, you should output the first index(from 0) of target string in source string.

    If target does not exist in source, just return -1.

    Example

    If source = "source" and target = "target", return -1.

    If source = "abcdabcdefg" and target = "bcd", return 1.

    二重循环,判断一下交错时的下标特点,提早排除。

    public class Solution {
        /*
         * @param source: source string to be scanned.
         * @param target: target string containing the sequence of characters to match
         * @return: a index to the first occurrence of target in source, or -1  if target is not part of source.
         */
        public int strStr(String source, String target) {
            // write your code here
            if (source == null || target == null){
                return -1;
            }
    
            for (int sPnt = 0; sPnt < source.length() - target.length() + 1; ++sPnt){
                int tPnt = 0;
                for (tPnt = 0; tPnt < target.length(); ++tPnt){
                    if (sPnt + tPnt >= source.length()){
                        return -1;
                    }
                    else if (source.charAt(sPnt + tPnt) != target.charAt(tPnt)){
                        break;
                    }
                }
                if (tPnt == target.length()){
                    return sPnt;
                }
            }
    
            return -1;
    
        }
    }

    1. 避免不必要的对比:写for (int sPnt = 0; sPnt < source.length() - target.length() + 1; ++sPnt){

    2.如果你for循环的循环变量之后还要用,就在外面定义它,然后在for循环里给它赋值!!这样for结束后还能用。

    int tPnt = 0;
    for (tPnt = 0; tPnt < target.length(); ++tPnt){

    3.考虑输入““””问题,字符串问题里“” 和null还是不一样的。

    4.“”的length()为0

    5.“”不能做charAt(0)操作。

  • 相关阅读:
    vim常用命令
    MYSQL用户管理
    RPM 命令
    Windows下使用xShell向远程Linux上传文件
    Linux PHP 安装过程出现的错误
    完整的 http 错误代码含义解释
    Linux gzip压缩输出
    高性能Mysql主从架构的复制原理及配置详解
    Mybatis多个参数传值方法
    jsp 九大内置对象和其作用详解
  • 原文地址:https://www.cnblogs.com/jasminemzy/p/7560846.html
Copyright © 2011-2022 走看看