LeetCode161. One Edit Distance
Posted 华仔要长胖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode161. One Edit Distance相关的知识,希望对你有一定的参考价值。
Difficulty: Easy
More:【目录】LeetCode Java实现
Description
The API: int read4(char *buf) reads 4 characters at a time from a file.
The return value is the actual number of characters read. For example, it returns 3 if there
is only 3 characters left in the file.
By using the read4 API, implement the function int read(char *buf, int n) that reads n
characters from the file.
Note: The read function will only be called once for each test case.
Intuition
题意:int read4(char[] buffer):该函数功能是读取某个文件,每次读取最多4个字符到buffer中,同时返回读取字符个数。要求利用read4()函数来实现read(char[] buf, int n)函数,总共读取n个字符到buf中。
要求很容易实现,每次用read4()来读取字符,用System.arraycopy(src, srcPos, dest, destPos, length)来复制数组即可。关键要注意的是文件的字符数小于n或者大于n的情况。
Solution
public int read(char[] buf,int n) { char[] buffer = new char[4]; int index=0; boolean endOfFile=false; while(index<n && !endOfFile) { int size=read4(buffer); if(size<4) endOfFile=true; int bytes=Math.min(size, n-index); System.arraycopy(buffer, 0, buf, index, bytes); index+=bytes; } return index; }
Complexity
Time complexity : O(n)
Space complexity : O(1)
What I\'ve learned
1.
More:【目录】LeetCode Java实现
以上是关于LeetCode161. One Edit Distance的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode161. One Edit Distance
leetcode 161. One Edit Distance 判断两个字符串是否是一步变换 --------- java