PParenWick
İş akışları

Kodlama iş akışları · Sınırlı S-ifadesi ayrıştırma

03
Ürün

İş akışları

En fazla 4096 karakterlik tek bir parantezli S ifadesini listelere ve ASCII atom dizelerine ayrıştırın. Boş listeleri, 16 derinliği ve 1024 düğümü sınayın; hiçbir şeyi yürütmeden ek biçimleri, kapanmamış listeleri ve desteklenmeyen alıntı sözdizimini reddedin.

01

Uygulamayı indirin

Bir klasör seçin ve düzenlemeden önce ilgili dosyaları okumasını asistandan isteyin. Görevin hedefini ve sınırlarını belirleyin.

02

Proje klasörünü açın

Uyumlu bir endpoint seçin. Kullanılabilir araçlar ve yanıt kalitesi, yapılandırılan modele ve sunucuya bağlıdır.

03

Modeli bağlayıp test edin

Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.

04

Değişiklikleri inceleyip testleri çalıştırın

Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.

Sınırlı S-ifadesi ayrıştırma

İş akışları
import re

def read_sexpression(text):
    if type(text) is not str or len(text) > 4096:
        raise ValueError("sexpr.input")
    stack, result, count = [], None, 0
    for match in re.finditer(r"\(|\)|[^\s()]+", text):
        token = match[0]
        if token == "(":
            if len(stack) == 16 or (not stack and result is not None):
                raise ValueError("sexpr.depth")
            item = []
            if stack:
                stack[-1].append(item)
            stack.append(item)
            count += 1
        elif token == ")":
            if not stack:
                raise ValueError("sexpr.close")
            item = stack.pop()
            if not stack:
                result = item
        else:
            if not stack or re.fullmatch(r"[A-Za-z_][A-Za-z0-9_-]*|[+-]?[0-9]+", token) is None:
                raise ValueError("sexpr.atom")
            stack[-1].append(token)
            count += 1
        if count > 1024:
            raise ValueError("sexpr.nodes")
    if stack or result is None:
        raise ValueError("sexpr.unclosed")
    return result

Uygulamadan önce inceleyin. Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.

Yapay zekâ ile kod çalışma alanı

Bir sonraki fikriniz burada başlar.

Windows için indir ↗